Czytaj, zapisuj i analizuj JSON przy użyciu języka Python

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.

pyhton-append-json1

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:

python-read-json-output1

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-json-zapis do pliku

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' }