V tomto kurzu se naučíte analyzovat, číst a psát JSON v Pythonu pomocí příkladů. Naučíte se také převést JSON na dict a pěkně jej vytisknout.
JSON ( J ava S cript O bject N otation) je populární Formát dat pro reprezentaci strukturovaných dat. Je běžné přenášet a přijímat data mezi serverem a webovou aplikací ve formátu JSON.
V Pythonu existuje JSON jako řetězec. Například:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Je také běžné ukládat objekt JSON do souboru.
Importujte modul JSON
Chcete-li pracovat s JSON (řetězec nebo soubor obsahující objekt JSON), můžete použít json
modul Pythonu . Než budete moci modul použít, musíte jej importovat.
import json
Analyzovat JSON v Pythonu
json
Modul usnadňuje analyzovat JSON řetězce a soubory, které obsahují JSON objekt.
Příklad 1: Python JSON k diktování
Řetězec JSON můžete analyzovat pomocí json.loads()
metody. Metoda vrací 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'))
Zde je osoba řetězec JSON a person_dict je slovník.
Příklad 2: Python přečetl soubor JSON
json.load()
Metodu můžete použít ke čtení souboru obsahujícího objekt JSON.
Předpokládejme, že máte soubor s názvem, person.json
který obsahuje objekt JSON.
("name": "Bob", "languages": ("English", "Fench") )
Tento soubor můžete analyzovat takto:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Zde jsme použili open()
funkci ke čtení souboru JSON. Poté je soubor analyzován pomocí json.load()
metody, která nám poskytne slovník s názvem data.
Pokud nevíte, jak číst a zapisovat soubory v Pythonu, doporučujeme vám zkontrolovat I / O souborů Pythonu.
Python Převést na řetězec JSON
Slovník můžete převést na řetězec JSON pomocí json.dumps()
metody.
Příklad 3: Převést 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)
Tady je tabulka ukazující objekty Pythonu a jejich ekvivalentní převod na JSON.
Krajta | Ekvivalent JSON |
---|---|
dict | objekt |
list , tuple | pole |
str | tětiva |
int ` float `int | číslo |
True | skutečný |
False | Nepravdivé |
None | nula |
Zápis JSON do souboru
K zápisu JSON do souboru v Pythonu můžeme použít json.dump()
metodu.
Příklad 4: Zápis JSON do souboru
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)
Ve výše uvedeném programu jsme otevřeli soubor pojmenovaný person.txt
v režimu psaní pomocí 'w'
. Pokud soubor ještě neexistuje, bude vytvořen. Poté se json.dump()
transformuje person_dict
na řetězec JSON, který se uloží do person.txt
souboru.
Po spuštění programu bude person.txt
soubor vytvořen. Soubor obsahuje následující text.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python pěkně tiskne JSON
Abychom mohli analyzovat a ladit data JSON, bude možná nutné je vytisknout ve čitelnějším formátu. To může být provedeno průchodem další parametry indent
a sort_keys
k json.dumps()
a json.dump()
metody.
Příklad 5: Python pěkně tiskne 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))
Když spustíte program, výstup bude:
("languages": "English", "name": "Bob", "numbers": (2, 1.6, null))
Ve výše uvedeném programu jsme 4
pro odsazení použili mezery. A klíče jsou seřazeny ve vzestupném pořadí.
Mimochodem, výchozí hodnota odsazení je None
. A výchozí hodnota sort_keys je False
.
Doporučené četby:
- Python JSON do CSV a naopak
- Python XML na JSON a naopak
- Python simplejson