Čítajte, píšte a analyzujte JSON pomocou Pythonu

Čítajte, píšte a analyzujte JSON pomocou Pythonu

JSON je odľahčený dátový formát na výmenu dát, ktorý môžu ľudia ľahko čítať a zapisovať a ľahko analyzovať a generovať stroje. Ide o kompletný jazykovo nezávislý textový formát. Na prácu s údajmi JSON má Python vstavaný balík s názvom JSON.

Príklad reťazca JSON

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

Syntax JSON sa považuje za podmnožinu syntaxe JavaScript vrátane nasledujúcich:

  • Páry názov/hodnota: Predstavuje údaje, za názvom nasleduje dvojbodka( : ) a páry Názov/Hodnota sú oddelené čiarkou( , ).
  • Kučeravé traky: Drží predmety.
  • Hranaté zátvorky: Uchovávajte polia s hodnotami oddelenými čiarkou ( , ).

Kľúče/názov musia byť reťazce s dvojitými úvodzovkami a hodnoty musia byť dátovými typmi spomedzi nasledujúcich:

Príklad súboru JSON:

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

Python Parse JSON String

V nižšie uvedenom kóde prevedieme JSON na objekt Python. Ak chcete analyzovať reťazec JSON Python, najprv importujeme modul JSON. V premennej máme uložený reťazec JSON ‚zamestnanec‘ a tento reťazec JSON konvertujeme na objekt Python pomocou json.loads() metóda modulu JSON v Pythone. Potom vytlačíme meno zamestnanca pomocou kľúča „meno“ .

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

Výkon

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

Python čítal súbor JSON

Predpokladajme, že máme súbor JSON, ktorý vyzerá takto.

pyhton-append-json1

Tu sme použili funkciu open() na prečítanie súboru JSON. Potom sa súbor analyzuje pomocou metódy json.load(), ktorá nám poskytne slovník s názvom 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ýkon:

python-read-json-output1

Previesť Python Dict na JSON

V nižšie uvedenom kóde konvertujeme a Pythonský slovník na objekt JSON pomocou json.dumps() metóda modulu JSON v Pythone. Najprv importujeme modul JSON a potom vytvoríme malý slovník s niekoľkými pármi kľúč-hodnota a potom ho prenesieme do metódy json.dumps() s ‘indent=4’, aby sme tento slovník Pythonu skonvertovali na objekt JSON. Keďže sme priradili hodnotu zarážky 4, pred každým údajom sú štyri medzery, ako je vidieť na výstupe.

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ýkon

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

Nasledujúce typy objektov Python možno previesť na reťazce JSON:

Objekty Pythonu a ich ekvivalentná konverzia na JSON:

Python

Ekvivalent JSON

diktát

objekt

zoznam, tuple

pole

str

reťazec

int, float

číslo

Pravda

pravda

Nepravdivé

falošný

žiadne

nulový

Zápis JSON do súboru v Pythone

JSON môžeme zapísať do súboru pomocou funkcie json.dump() modulu JSON a manipulácie so súbormi v Pythone. V nižšie uvedenom programe sme otvorili súbor s názvom sample.json v režime zápisu pomocou 'In' . Súbor sa vytvorí, ak neexistuje. Json.dump() transformuje pythonovský slovník na reťazec JSON a ten sa uloží do súboru 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)>

Výkon:

python-json-write-to-file

Python Pretty Print JSON

Keď konvertujeme reťazec na JSON, údaje sú v menej čitateľnom formáte. Aby to bolo čitateľnejšie, môžeme použiť peknú tlač zadaním ďalších argumentov vo funkcii json.dumps(), ako napr. zarážka a sort_keys ako sa používa v nižšie uvedenom kóde.

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ýkon

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