logo

Číst, zapisovat a analyzovat JSON pomocí Pythonu

JSON je odlehčený datový formát pro výměnu dat, který lze snadno číst a zapisovat lidmi a snadno analyzovat a generovat stroje. Jedná se o kompletní jazykově nezávislý textový formát. Pro práci s daty JSON má Python vestavěný balíček s názvem JSON.

Příklad JSON String

s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}'>

Syntaxe JSON je považován za podmnožinu syntaxe JavaScript včetně následujících:



  • Páry název/hodnota: Představuje Data, za jménem následuje dvojtečka( : ) a dvojice Název/Hodnota jsou odděleny čárkou( , ).
  • Složené závorky: Drží předměty.
  • Hranaté závorky: Podržte pole s hodnotami oddělenými čárkou ( , ).

Klíče/název musí být řetězce s dvojitými uvozovkami a hodnoty musí být datové typy z následujících:

  • Tětiva
  • Číslo
  • Objekt (objekt JSON)
  • pole
  • Boolean
  • Nula

Příklad souboru JSON:

 {  'employee': [  {  'id': '01',  'name': 'Amit',  'department': 'Sales'  },  {  'id': '04',  'name': 'sunil',  'department': 'HR'  }  ] }>

Python Parse JSON String

V níže uvedeném kódu převedeme JSON na objekt Python. Abychom analyzovali řetězec JSON v Pythonu, nejprve importujeme modul JSON. V proměnné máme uložený řetězec JSON 'zaměstnanec' a tento řetězec JSON převedeme na objekt Pythonu pomocí json.loads() metoda modulu JSON v Pythonu. Poté vytiskneme jméno zaměstnance pomocí klíče ‚jméno‘ .

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'>])>

>

np.histogram

>

Výstup

{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin>

Python čte soubor JSON

Předpokládejme, že máme soubor JSON, který vypadá takto.

pyhton-append-json1

Zde jsme použili funkci open() ke čtení souboru JSON. Poté je soubor analyzován pomocí metody json.load(), která nám poskytne slovník s názvem 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()>

>

>

Výstup:

python-read-json-output1

Převeďte Python Dict na JSON

V níže uvedeném kódu převádíme a Pythonský slovník k objektu JSON pomocí json.dumps() metoda modulu JSON v Pythonu. Nejprve importujeme modul JSON a poté vytvoříme malý slovník s několika páry klíč–hodnota a poté jej předáme metodě json.dumps() s ‚indent=4‘, abychom tento slovník Pythonu převedli na objekt JSON. Protože jsme dali hodnotu odsazení 4, před každým datem jsou čtyři mezery, jak je vidět na výstupu.

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)>

>

>

Výstup

{ 'id': '04', 'name': 'sunil', 'department': 'HR' }>

Následující typy objektů Pythonu lze převést na řetězce JSON:

Objekty Pythonu a jejich ekvivalentní převod na JSON:

Krajta

Ekvivalent JSON

diktát

objekt

seznam, n-tice

pole

str

tětiva

int, plovoucí

číslo

Skutečný

skutečný

Nepravdivé

Nepravdivé

Žádný

nula

Zápis JSON do souboru v Pythonu

JSON můžeme zapsat do souboru pomocí funkce json.dump() modulu JSON a zpracování souborů v Pythonu. V níže uvedeném programu jsme otevřeli soubor s názvem sample.json v režimu zápisu pomocí 'V' . Pokud soubor neexistuje, bude vytvořen. Json.dump() převede slovník Pythonu na řetězec JSON a uloží se do souboru 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)>

>

hodnota řetězce java
>

Výstup:

python-json-write-to-file

Python Pretty Print JSON

Když převedeme řetězec na JSON, data jsou v méně čitelném formátu. Aby to bylo čitelnější, můžeme použít pěkný tisk předáním dalších argumentů ve funkci json.dumps(), jako je Odrážka a sort_keys jak se používá v níže uvedeném kódu.

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>))>

>

>

Výstup

{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }>