N (JavaScript Object Notation) je lehký formát pro výměnu dat, který je snadno čitelný pro lidi a snadno zpracovatelný pro počítače. V Pythonu je manipulace s JSON daty přímočará díky vestavěné knihovně json
, která nabízí jednoduché rozhraní pro kódování a dekódování JSON dat. V tomto článku prozkoumáme, jak s JSON daty pracovat v Pythonu, včetně jejich čtení, zápisu a zpracování.
Základy JSON
JSON je formát založený na textu, který používá dvojice klíč/hodnota a uspořádané seznamy (podobně jako slovníky a seznamy v Pythonu). To umožňuje reprezentaci složitých datových struktur v jednoduché a přehledné formě.
Čtení JSON dat
Pro načtení JSON dat ze souboru nebo řetězce použijeme metodu json.load()
pro soubory nebo json.loads()
pro řetězce. Příklad načtení JSON dat ze souboru:
import json
# Načtení JSON dat ze souboru
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
Zápis JSON dat
Pro zápis JSON dat do souboru nebo převod Python objektu na JSON řetězec použijeme metodu json.dump()
pro soubory nebo json.dumps()
pro vytvoření řetězce. Příklad zápisu dat do souboru:
import json
data = {
'name': 'Jan Novák',
'age': 30,
'city': 'Praha'
}
# Zápis JSON dat do souboru
with open('output.json', 'w') as file:
json.dump(data, file, ensure_ascii=False, indent=4)
Práce s komplexními daty
JSON v Pythonu může obsahovat všechny základní datové typy, jako jsou řetězce, čísla, pole (v JSON terminologii "arrays") a objekty (slovníky v Pythonu), což umožňuje reprezentovat velmi složité datové struktury.
Přizpůsobení serializace
Při převodu složitějších datových typů, jako jsou vlastní objekty, můžeme narazit na potřebu přizpůsobit serializaci. Knihovna json
nabízí možnost definovat vlastní enkodér, dědící z json.JSONEncoder
, který umožňuje specifikovat, jak se mají tyto složité objekty serializovat.
Závěr
Práce s JSON daty v Pythonu je díky vestavěné knihovně json
jednoduchá a efektivní. Umožňuje snadno načítat, zapisovat a zpracovávat data ve formátu, který je široce používán v webových aplikacích a pro výměnu dat mezi různými systémy. S rozsáhlou podporou pro různé datové typy a možností přizpůsobení serializace je Python skvělým nástrojem pro práci s JSON daty.