Python JSON: Čtení, zápis, analýza JSON (s příklady)

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 jsonmodul Pythonu . Než budete moci modul použít, musíte jej importovat.

 import json

Analyzovat JSON v Pythonu

jsonModul 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.jsonkterý 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.txtv režimu psaní pomocí 'w'. Pokud soubor ještě neexistuje, bude vytvořen. Poté se json.dump()transformuje person_dictna řetězec JSON, který se uloží do person.txtsouboru.

Po spuštění programu bude person.txtsoubor 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 indenta sort_keysk 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 4pro 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

Zajímavé články...