JavaScript Object Notation (JSON) je datový formát určený pro přenos dat. Vstupem je libovolná datová struktura (číslo, řetězec, boolean, objekt nebo z nich složené pole), výstupem je vždy řetězec. JSON objekt může být teoreticky libovolně složitý (do šířky i hloubky).
Pro práci s tímto formátem je v Pythonu připravena knihovna json. Tato knihovna je schopna převést Pythonní objekt (složený z různých běžných proměných a kontejnerů) na řetězec, který představuje validní JSON Následně tato knihovna dokáže z JSON složit Pythonní objekt. Následuje příklad jak složit ukázkový Pythonní objekt do JSON textu.
In [4]:
import json
# ukazkova data
message = [
{"time": 123, "value": 5},
{"time": 124, "value": 6},
{"status": "ok", "finish": [True, False, False]},
]
# zabalit zpravu
js_message = json.dumps(message)
# show result
print(type(js_message))
print(js_message)
Následuje příklad, ve kterém se vezme JSON text z předchozího příkladu a zpátku se z něj složí objekt.
In [2]:
# unpack message
message = json.loads(js_message)
# show result
print(type(message))
print(message)
Ve formátu json můžou být libovolně mezery a nové řádky. Z toho plyne že je možné naformátovat JSON tak, aby byl lépe čitelný. Příklad následuje na předchozích datech.
In [5]:
# zabalit zpravu
js_message = json.dumps(message, indent=4)
# show result
print(type(js_message))
print(js_message)
Pickle je ryze Pythonní knihovna, která slouží k snadnému ukládání Pythonních objektů. Následuje příklad, v kterém jsou ukázková data serializována pomocí knihovny pickle do soubor save.ph.
In [7]:
import pickle
# ukazkova data
message = [
{"time": 123, "value": 5},
{"time": 124, "value": 6},
{"status": "ok", "finish": [True, False, False]},
]
# serizalizace pomoci pickle
pickle.dump(message, open( "save.p", "wb" ))
Následuje příklad kde jsou uložená data deserializována zpátky do Pythonního objektu.
In [9]:
# otevrit soubor pomoci pickle
loaded_message = pickle.load(open( "save.p", "rb" ))
# tisk dat
print(type(loaded_message))
print(loaded_message)
In [ ]: