logo

json.dumps() v Pythone

JSON je skratka pre JavaScript Object Notation. Napriek svojmu názvu je JSON jazyk agnostický formát, ktorý sa najčastejšie používa na prenos údajov medzi systémami a príležitostne aj na ukladanie údajov. Programy napísané v Pythone, ako aj v mnohých iných programovacích jazykoch, môžu prijímať údaje vo formáte JSON a môžu serializovať údaje v pamäti do formátu JSON. Python podporuje JSON prostredníctvom vstavaného balíka s názvom json. Ak chcete použiť túto funkciu, importujte balík json do skriptu alebo modulu Pythonu, v ktorom chcete serializovať alebo deserializovať svoje údaje. JSON využíva páry kľúč-hodnota oddelené čiarkou v úvodzovkách a oddelené dvojbodkami. Telo súboru JSON môže byť oddelené v zložených zátvorkách { } alebo hranatých zátvorkách [] (v niektorých jazykoch tiež známe ako zátvorky). Zdá sa, že formát JSON je podobný slovníku v Pythone, ale špecifiká formátu JSON majú značné rozdiely, preto buďte opatrní pri práci s oboma formátmi.

Poznámka: Ďalšie informácie nájdete v časti Čítať, Napíšte a analyzujte JSON pomocou Pythonu



Json.dumps()

Funkcia json.dumps() skonvertuje podmnožinu objektov Pythonu na reťazec json. Nie všetky objekty sú konvertibilné a možno budete musieť vytvoriť slovník údajov, ktoré chcete vystaviť pred serializáciou do JSON.

Syntax:
json.dumps(obj, *, skipkeys=False, secure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
Parametre:
obj: Serializujte obj ako stream vo formáte JSON
preskakovacie klávesy: Ak je funkcia skipkeys True (predvolená hodnota: False), potom klávesy diktovania, ktoré nie sú základného typu (str, int, float, bool, None), budú preskočené namiesto vyvolania chyby TypeError.
secure_ascii: Ak má secure_ascii hodnotu True (predvolená hodnota), na výstupe je zaručené, že budú všetky prichádzajúce znaky mimo ASCII kódované. Ak má secure_ascii hodnotu False, tieto znaky sa vypíšu tak, ako sú.
kontrolný_kruh: Ak je hodnota check_circular False (predvolená hodnota: True), potom sa kontrola kruhovej referencie pre typy kontajnerov preskočí a kruhová referencia bude mať za následok chybu OverflowError (alebo horšiu).
povoliť_v: Ak má allow_nan hodnotu False (predvolená hodnota: True), bude to hodnota ValueError, ktorá bude serializovať pohyblivé hodnoty mimo rozsahu (nan, inf, -inf) v prísnom súlade so špecifikáciou JSON. Ak má allow_nan hodnotu True, použijú sa ich ekvivalenty JavaScriptu (NaN, Infinity, -Infinity).
zarážka: Ak je odsadenie nezáporné celé číslo alebo reťazec, prvky poľa JSON a členovia objektu budú pekne vytlačené s touto úrovňou odsadenia. Úroveň odsadenia 0, záporná alebo vloží iba nové riadky. Žiadne (predvolené) vyberie najkompaktnejšiu reprezentáciu. Použitím odsadenia kladného celého čísla sa odsadí toľko medzier na úrovni. Ak je odsadenie reťazec (napríklad ), tento reťazec sa použije na odsadenie každej úrovne.
oddeľovače: Ak je zadaný, oddeľovače by mali byť (oddeľovač_položiek, oddeľovač_kľúčov) n-tica. Predvolená hodnota je (‘, ‘, ‘: ‘), ak je odsadenie Žiadne a (‘, ‘, ‘: ‘), inak. Ak chcete získať čo najkompaktnejšiu reprezentáciu JSON, mali by ste zadať (‘, ‘, ‘:’), aby ste odstránili medzery.
predvolene: Ak je zadaný, predvolená hodnota by mala byť funkcia, ktorá sa volá pre objekty, ktoré sa inak nedajú serializovať. Mal by vrátiť kódovateľnú verziu objektu JSON alebo vyvolať TypeError. Ak nie je zadaný, zobrazí sa TypeError.
sort_keys: Ak má sort_keys hodnotu True (predvolená hodnota: False), potom bude výstup slovníkov zoradený podľa kľúča.

Príklad č. 1: Odovzdanie pythonského slovníka funkcii json.dumps() vráti reťazec.



Python3


strojopis mapy





import> json> # Creating a dictionary> Dictionary>=>{>1>:>'Welcome'>,>2>:>'to'>,> >3>:>'Geeks'>,>4>:>'for'>,> >5>:>'Geeks'>}> > # Converts input dictionary into> # string and stores it in json_string> json_string>=> json.dumps(Dictionary)> print>(>'Equivalent json string of input dictionary:'>,> >json_string)> print>(>' '>)> # Checking type of object> # returned by json.dumps> print>(>type>(json_string))>

>

>

Výkon

Ekvivalentný reťazec json slovníka: {1: Vitajte, 2: komu, 3: Geeks, 4: for, 5: Geeks}

Príklad č. 2: Nastavením skipkeys na True (predvolené: False) automaticky preskočíme klávesy, ktoré nie sú základného typu.

Python3




import> json> Dictionary>=>{(>1>,>2>,>3>):>'Welcome'>,>2>:>'to'>,> >3>:>'Geeks'>,>4>:>'for'>,> >5>:>'Geeks'>}> # Our dictionary contains tuple> # as key, so it is automatically> # skipped If we have not set> # skipkeys = True then the code> # throws the error> json_string>=> json.dumps(Dictionary,> >skipkeys>=> True>)> print>(>'Equivalent json string of dictionary:'>,> >json_string)>

>

>

Výkon

Ekvivalentný reťazec json slovníka: {2: to, 3: Geeks, 4: for, 5: Geeks}

Príklad č. 3:

Python3




import> json> # We are adding nan values> # (out of range float values)> # in dictionary> Dictionary>=>{(>1>,>2>,>3>):>'Welcome'>,>2>:>'to'>,> >3>:>'Geeks'>,>4>:>'for'>,> >5>:>'Geeks'>,>6>:>float>(>'nan'>)}> # If we hadn't set allow_nan to> # true we would have got> # ValueError: Out of range float> # values are not JSON compliant> json_string>=> json.dumps(Dictionary,> >skipkeys>=> True>,> >allow_nan>=> True>)> print>(>'Equivalent json string of dictionary:'>,> >json_string)>

>

>

Výkon :

Ekvivalentný reťazec json slovníka: {2: to, 3: Geeks, 4: for, 5: Geeks, 6: NaN}

Príklad č. 4:

Python3




import> json> Dictionary>=>{(>1>,>2>,>3>):>'Welcome'>,>2>:>'to'>,> >3>:>'Geeks'>,>4>:>'for'>,> >5>:>'Geeks'>,>6>:>float>(>'nan'>)}> # Indentation can be used> # for pretty-printing> json_string>=> json.dumps(Dictionary,> >skipkeys>=> True>,> >allow_nan>=> True>,> >indent>=> 6>)> print>(>'Equivalent json string of dictionary:'>,> >json_string)>

>

>

Výkon:

Equivalent json string of dictionary: { '2': 'to', '3': 'Geeks', '4': 'for', '5': 'Geeks', '6': NaN }>

Príklad č. 5:

Python3




iterácia mapy v jave

import> json> Dictionary>=>{(>1>,>2>,>3>):>'Welcome'>,>2>:>'to'>,> >3>:>'Geeks'>,>4>:>'for'>,> >5>:>'Geeks'>,>6>:>float>(>'nan'>)}> # If specified, separators should be> # an (item_separator, key_separator)tuple> # Items are separated by '.' and key,> # values are separated by '='> json_string>=> json.dumps(Dictionary,> >skipkeys>=> True>,> >allow_nan>=> True>,> >indent>=> 6>,> >separators>=>(>'. '>,>' = '>))> print>(>'Equivalent json string of dictionary:'>,> >json_string)>

>

>

Výkon:

Equivalent json string of dictionary: { '2' = 'to'. '3' = 'Geeks'. '4' = 'for'. '5' = 'Geeks'. '6' = NaN }>

Príklad č. 6:

Python3




import> json> Dictionary>=>{>'c'>:>'Welcome'>,>'b'>:>'to'>,> >'a'>:>'Geeks'>}> json_string>=> json.dumps(Dictionary,> >indent>=> 6>,> >separators>=>(>'. '>,>' = '>),> >sort_keys>=> True>)> print>(>'Equivalent json string of dictionary:'>,> >json_string)>

>

>

Výkon:

Equivalent json string of dictionary: { 'a' = 'Geeks'. 'b' = 'to'. 'c' = 'Welcome' }>