V tomto tutoriáli sa naučíte pomocou príkladov analyzovať, čítať a písať JSON v Pythone. Naučíte sa tiež prevádzať JSON na diktáty a pekne ich tlačiť.
JSON ( J ava S Cripta O bject N otation) je populárny Formát dát pre reprezentáciu štruktúrovaných dát. Je bežné prenášať a prijímať údaje medzi serverom a webovou aplikáciou vo formáte JSON.
V Pythone existuje JSON ako reťazec. Napríklad:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Je tiež bežné ukladať objekt JSON do súboru.
Importujte modul JSON
Na prácu s JSON (reťazec alebo súbor obsahujúci objekt JSON) môžete použiť Pythonov json
modul. Pred použitím musíte modul importovať.
import json
Analyzujte JSON v Pythone
json
Modul uľahčuje analyzovať JSON reťazca a súbory, ktoré obsahujú JSON objekt.
Príklad 1: Python JSON na diktovanie
Reťazec JSON môžete analyzovať pomocou json.loads()
metódy. Metóda vráti slovník.
import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))
Osoba je tu reťazec JSON a osoba_dikt je slovník.
Príklad 2: Python načítal súbor JSON
Môžete použiť json.load()
metódu na čítanie súboru obsahujúceho objekt JSON.
Predpokladajme, že máte súbor s názvom, person.json
ktorý obsahuje objekt JSON.
("name": "Bob", "languages": ("English", "Fench") )
Tento súbor môžete analyzovať takto:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Tu sme použili open()
funkciu na načítanie súboru json. Potom je súbor analyzovaný pomocou json.load()
metódy, ktorá nám poskytne slovník s názvom data.
Ak neviete, ako čítať a zapisovať súbory v Pythone, odporúčame vám skontrolovať I / O súborov Pythonu.
Python Prevod na reťazec JSON
Slovník môžete previesť na reťazec JSON pomocou json.dumps()
metódy.
Príklad 3: Preveďte dict na JSON
import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json)
Tu je tabuľka ukazujúca objekty Pythonu a ich ekvivalentný prevod na JSON.
Python | Ekvivalent JSON |
---|---|
dict | objekt |
list , tuple | pole |
str | struna |
int , float ,int | číslo |
True | pravda |
False | nepravdivé |
None | nulový |
Zápis JSON do súboru
Na zápis JSON do súboru v Pythone môžeme použiť json.dump()
metódu.
Príklad 4: Zápis JSON do súboru
import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file)
Vo vyššie uvedenom programe sme otvorili súbor s názvom person.txt
v režime písania pomocou 'w'
. Ak súbor ešte neexistuje, vytvorí sa. Potom sa json.dump()
transformuje person_dict
na reťazec JSON, ktorý sa uloží do person.txt
súboru.
Po spustení programu person.txt
sa vytvorí súbor. Súbor má v sebe nasledujúci text.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python pekne tlačí JSON
Na analýzu a ladenie údajov JSON bude možno potrebné vytlačiť ich v čitateľnejšom formáte. To môže byť vykonané priechodom ďalšie parametre indent
a sort_keys
k json.dumps()
a json.dump()
metódy.
Príklad 5: Python pekne tlačí JSON
import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True))
Po spustení programu bude výstup:
("languages": "English", "name": "Bob", "numbers": (2, 1.6, null))
Vo vyššie uvedenom programe sme použili 4
medzery na odsadenie. Kľúče sú zoradené vzostupne.
Mimochodom, predvolená hodnota odsadenia je None
. A predvolená hodnota sort_keys je False
.
Odporúčané hodnoty:
- Python JSON do CSV a naopak
- Python XML až JSON a naopak
- Python simplejson