Čí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.
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:
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 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' }