JSON oznacza J awa S krypta O obiekt N otacja. Jest to format strukturyzacji danych. Ten format jest używany przez różne aplikacje internetowe do wzajemnej komunikacji. W tym artykule dowiemy się o ładnym druku JSON
Co to jest JSON?
JSON (JavaScript Object Notation) to tekstowy format danych, który jest wymienny z wieloma językami programowania. Jest powszechnie używany do transmisji danych pomiędzy aplikacjami klient-serwer. Zwykle przesyłane są zminimalizowane wersje tekstu JSON, aby zaoszczędzić przepustowość. Jednak do debugowania i analizy wymagana jest upiększona wersja lub ładny drukowany JSON. Zasadniczo ładny druk JSON oznacza posiadanie odpowiednich wcięć, białych spacji i separatorów.
Przykład:
monitor kineskopowy
Input: '[ {'studentid': 1, 'name': 'ABC', 'subjects': ['Python', 'Data Structures']}]' Output: [ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] } ]> json.dumps() w Pythonie
Najpierw użyj metody json.loads(), aby przekonwertować ciąg JSON na Pyton obiekt. Aby przekonwertować ten obiekt na ładnie wydrukowany ciąg JSON, używana jest metoda json.dumps(). Poniżej znajdują się przykłady i kroki umożliwiające lepsze zrozumienie takich przypadków.
Składnia: json.dumps(obj, wcięcie,separator)
Parametr:
- obiekt: Serializuj obiekt jako strumień w formacie JSON
- akapit: Jeśli wcięcie jest nieujemną liczbą całkowitą lub ciągiem znaków, wówczas elementy tablicy JSON i elementy obiektów zostaną ładnie wydrukowane z tym poziomem wcięcia. Poziom wcięcia równy 0, ujemny lub spowoduje wstawienie tylko znaków nowej linii.
- separatory: Jeśli określono, separatorami powinna być krotka (separator_elementu, separator_klucza).
Ładny drukowany ciąg JSON
Ta metoda zawiera parametr wcięcie określający liczbę spacji oraz parametr separatora określający separator między kluczem a wartością. Domyślnie separatorem jest przecinek między parami klucz-wartość i dwukropek między kluczem a wartością. Jeśli parametr indent funkcji json.dumps() jest ujemny, 0 lub jest pustym ciągiem znaków, wówczas nie ma żadnych wcięć i wstawiane są tylko znaki nowej linii. Domyślnie wcięcie to Brak, a dane są przedstawiane w jednej linii.
Kod pobiera ciąg JSON zawierający rekordy uczniów, analizuje go w strukturę danych Pythona, a następnie ładnie drukuje dane JSON z odpowiednimi wcięciami dla lepszej czytelności.
Python3
import> json> json_data>=> '[ {>'studentid'>:>1>,>'name'>:>'ABC'>,> 'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]} ]'> obj>=> json.loads(json_data)> json_formatted_str>=> json.dumps(obj, indent>=>4>)> print>(json_formatted_str)> |
>
>
Wyjście:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]> Ładnie wydrukowane dane JSON do pliku wcięcie=0 .
Kod pobiera ciąg JSON zawierający rekordy uczniów, analizuje go w strukturę danych Pythona, a następnie ładnie drukuje dane JSON z zerowym wcięciem, dzięki czemu są zwarte i mniej czytelne.
Python3
import> json> json_data>=> '[ {>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]} ]'> obj>=> json.loads(json_data)> json_formatted_str>=> json.dumps(obj, indent>=>0>)> print>(json_formatted_str)> |
>
>
Wyjście:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]> Zapisz Pretty Print dane JSON do pliku
Aby zapisać obiekt Pythona w formacie JSON Pretty Print do pliku, używana jest metoda json.dump(). Podobnie jak metoda json.dumps() ma ona parametry wcięć i separatorów umożliwiające zapis upiększonego formatu JSON.
Python3
import> json> data>=> [{>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]}]> with>open>(>'filename.json'>,>'w'>) as write_file:> >json.dump(data, write_file, indent>=>4>)> |
>
>
Wyjście:
nazwapliku.json
Odczytanie danych JSON i ładne wydrukowanie ich
Aby odczytać JSON z pliku lub adresu URL, użyj json.load(). Następnie użyj funkcji json.dumps(), aby przekonwertować obiekt (uzyskany w wyniku odczytania pliku) na ładnie wydrukowany ciąg JSON.
Python3
import> json> with>open>(>'filename.json'>,>'r'>) as read_file:> > >obj>=> json.load(read_file)> >pretty_json>=> json.dumps(obj, indent>=>4>)> >print>(pretty_json)> |
>
>
Wyjście:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]> Za pomocą moduł pprint, aby ładnie wydrukować JSON aby wydrukować nasz format JSON
Ten kod odczytuje dane JSON z pliku o nazwie test.json, analizuje je w strukturę danych Pythona, a następnie drukuje je przy użyciu obu wbudowanych funkcjiprint>funkcja ipprint>moduł. Thepprint>moduł służy do ładnego drukowania danych JSON z określonymi opcjami formatowania, takimi jak wcięcie 2, szerokość linii 30 znaków i zwarta reprezentacja.
wzorce projektowe w Javie
Python3
import> json> import> pprint> with>open>(>'test.json'>,>'r'>) as json_data:> >student>=> json.load(json_data)> >print>(student)> >print>(>'
'>)> pp>=> pprint.PrettyPrinter(indent>=>2>, width>=>30>, compact>=>True>)> print>(>'Pretty Printing using pprint module'>)> pp.pprint(student)> |
>
>
Wyjście:
{'Teacher_id': 1, 'name': 'Suraj', 'Salary': 50000, 'attendance': 80, 'Branch': ['English', 'Geometry', 'Physics', 'World History'], 'email': '[email protected]'} Pretty Printing using pprint module ('{'Teacher_id': 1, 'name': ' ''Suraj', 'Salary': 50000, ' ''attendance': 80, ' ''Branch': ['English', ' ''Geometry', 'Physics', ' ''World History'], 'email': ' ''[email protected]'}')> Ładnie wydrukuj JSON z wiersza poleceń
W tym przykładzie próbujemy wydrukować dane za pomocą wiersza poleceń. Aby sprawdzić poprawność i ładnie wydrukować obiekty JSON z wiersza poleceń, Python oferuje pakiet json.tool.
Python3
echo {>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]} | python>->m json.tool> |
>
>
Wyjście:
{ 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }>