Czytaj, zapisuj i analizuj JSON przy użyciu języka Python
JSON to lekki format danych do wymiany danych, który może być łatwo odczytywany i zapisywany przez ludzi oraz łatwo analizowany i generowany przez maszyny. Jest to kompletny, niezależny od języka format tekstowy. Aby pracować z danymi JSON, Python ma wbudowany pakiet o nazwie JSON.
Przykład ciągu JSON
s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}' Składnia JSON jest uważany za podzbiór składni JavaScript w tym:
- Pary nazwa/wartość: Reprezentuje Dane, po nazwie następuje dwukropek ( : ), a pary nazwa/wartość oddziela się przecinkiem ( , ).
- Nawiasy klamrowe: Trzyma przedmioty.
- Nawiasy kwadratowe: Przechowuj tablice z wartościami oddzielonymi przecinkiem ( , ).
Klucze/nazwa muszą być ciągami znaków z podwójnymi cudzysłowami, a wartości muszą należeć do następujących typów danych:
Przykład pliku JSON:
{ 'employee': [ { 'id': '01', 'name': 'Amit', 'department': 'Sales' }, { 'id': '04', 'name': 'sunil', 'department': 'HR' } ] } Python analizuje ciąg JSON
W poniższym kodzie skonwertujemy JSON na obiekt Pythona. Aby przeanalizować ciąg JSON w Pythonie, najpierw importujemy moduł JSON. Mamy ciąg JSON zapisany w zmiennej 'pracownik' i konwertujemy ten ciąg JSON na obiekt Pythona za pomocą json.loads() metoda modułu JSON w Pythonie. Następnie drukujemy imię i nazwisko pracownika za pomocą klucza „imię” .
Python3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> print> (employee_dict)> print> (employee_dict[> 'name'> ])> |
Wyjście
{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin Python odczytuje plik JSON
Załóżmy, że mamy plik JSON wyglądający tak.
Tutaj użyliśmy funkcji open() do odczytania pliku JSON. Następnie plik jest analizowany przy użyciu metody json.load(), która daje nam słownik o nazwie data.
Python3
import> json> # Opening JSON file> f> => open> (> 'data.json'> ,)> # returns JSON object as> # a dictionary> data> => json.load(f)> # Iterating through the json> # list> for> i> in> data[> 'emp_details'> ]:> > print> (i)> # Closing file> f.close()> |
Wyjście:
Konwertuj Python Dict na JSON
W poniższym kodzie konwertujemy plik a Słownik Pythona do obiektu JSON za pomocą json.dumps() metoda modułu JSON w Pythonie. Najpierw importujemy moduł JSON, a następnie tworzymy mały słownik z kilkoma parami klucz-wartość, a następnie przekazujemy go do metody json.dumps() z „indent=4”, aby przekonwertować ten słownik Pythona na obiekt JSON. Ponieważ nadaliśmy wartość wcięcia na 4, przed każdymi danymi znajdują się cztery białe spacje, jak widać na wyjściu.
Python3
# Python program to convert> # Python to JSON> import> json> > # Data to be written> dictionary> => {> > 'id'> :> '04'> ,> > 'name'> :> 'sunil'> ,> > 'department'> :> 'HR'> }> > # Serializing json> json_object> => json.dumps(dictionary, indent> => 4> )> print> (json_object)> |
Wyjście
{ 'id': '04', 'name': 'sunil', 'department': 'HR' } Następujące typy obiektów Pythona można konwertować na ciągi JSON:
Obiekty Pythona i ich równoważna konwersja do JSON:
| Pyton | Odpowiednik JSON |
|---|---|
| dykt | obiekt |
| lista, krotka | szyk |
| ul | strunowy |
| int, pływak | numer |
| PRAWDA | PRAWDA |
| FAŁSZ | FAŁSZ |
| Nic | zero |
Zapisywanie JSON do pliku w Pythonie
JSON możemy zapisać do pliku wykorzystując funkcję json.dump() modułu JSON i obsługę plików w Pythonie. W poniższym programie otworzyliśmy plik o nazwie sample.json w trybie zapisu przy użyciu ‘w’ . Plik zostanie utworzony, jeśli nie istnieje. Json.dump() przekształci słownik Pythona w ciąg JSON i zostanie zapisany w pliku sample.json.
Python3
# Python program to write JSON> # to a file> import> json> > # Data to be written> dictionary> => {> > 'name'> :> 'sathiyajith'> ,> > 'rollno'> :> 56> ,> > 'cgpa'> :> 8.6> ,> > 'phonenumber'> :> '9976770500'> }> > with> open> (> 'sample.json'> ,> 'w'> ) as outfile:> > json.dump(dictionary, outfile)> |
Wyjście:
Python Ładny wydruk JSON
Kiedy konwertujemy ciąg znaków na JSON, dane mają mniej czytelny format. Aby uczynić go bardziej czytelnym, możemy zastosować ładne drukowanie, przekazując dodatkowe argumenty w funkcji json.dumps(), takie jak akapit I sort_keys jak użyto w poniższym kodzie.
Python3
# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> # Pretty Printing JSON string back> print> (json.dumps(employee_dict, indent> => 4> , sort_keys> => True> ))> |
Wyjście
{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }