Python — ładny druk JSON
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:
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 funkcji print> funkcja i pprint> moduł. The pprint> 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.
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' ] }