logo

json.dumps() a Python

JSON és un acrònim que significa JavaScript Object Notation. Malgrat el seu nom, JSON és un format agnòstic del llenguatge que s'utilitza més habitualment per transmetre dades entre sistemes i, de vegades, emmagatzemar dades. Els programes escrits en Python, així com molts altres llenguatges de programació, poden ingerir dades amb format JSON i serialitzar dades a la memòria al format JSON. Python admet JSON mitjançant un paquet integrat anomenat json. Per utilitzar aquesta funció, importeu el paquet json a l'script o mòdul de Python en què voleu serialitzar o deserialitzar les vostres dades. JSON utilitza parells de valors de clau delimitats per comes continguts entre cometes dobles i separats per dos punts. El cos d'un fitxer JSON es pot delimitar entre claus { } o claus [] (també conegut com a claudàtors en algunes configuracions regionals). El format JSON sembla ser similar al diccionari de Python, però les particularitats del format JSON tenen diferències significatives, així que tingueu cura quan treballeu amb tots dos formats.

Nota: Per obtenir més informació, consulteu Llegir, Escriu i analitza JSON amb Python



Json.dumps()

La funció json.dumps() convertirà un subconjunt d'objectes Python en una cadena json. No tots els objectes són convertibles i és possible que hàgiu de crear un diccionari de dades que voleu exposar abans de serialitzar a JSON.

Sintaxi:
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=Cap, sagnat=Cap, separadors=Cap, predeterminat=Cap, sort_keys=Fals, **kw)
Paràmetres:
obj: Serialitza obj com a flux amb format JSON
saltar tecles: Si skipkeys és True (per defecte: False), llavors les tecles dict que no són de tipus bàsic (str, int, float, bool, None) es saltaran en lloc de generar un TypeError.
garantir_ascii: Si assure_ascii és True (el valor predeterminat), es garanteix que tots els caràcters entrants no ASCII s'escaparan de la sortida. Si assure_ascii és False, aquests caràcters es sortiran tal com estan.
check_circular: Si check_circular és False (per defecte: True), la comprovació de referència circular per als tipus de contenidor s'ometrà i una referència circular donarà lloc a un error de desbordament (o pitjor).
allow_in: Si allow_nan és False (per defecte: True), serà un ValueError per serialitzar els valors flotants fora de l'interval (nan, inf, -inf) en estricte compliment de l'especificació JSON. Si allow_nan és True, s'utilitzaran els seus equivalents de JavaScript (NaN, Infinity, -Infinity).
sagnat: Si el sagnat és un nombre enter o una cadena no negatius, els elements de la matriu JSON i els membres de l'objecte s'imprimiran bastant amb aquest nivell de sagnat. Un nivell de sagnat de 0, negatiu, o només inserirà noves línies. Cap (el valor predeterminat) selecciona la representació més compacta. L'ús d'un sagnat enter positiu fa sagnar tants espais per nivell. Si sagnat és una cadena (com ara ), aquesta cadena s'utilitza per sagnar cada nivell.
separadors: Si s'especifica, els separadors haurien de ser una tupla (separador_elements, separador_claus). El valor per defecte és (', ', ':') si el sagnat és Cap i (', ', ':') en cas contrari. Per obtenir la representació JSON més compacta, hauríeu d'especificar (‘, ‘, ‘:’) per eliminar els espais en blanc.
per defecte: Si s'especifica, per defecte hauria de ser una funció que es crida per als objectes que d'altra manera no es poden serialitzar. Hauria de retornar una versió codificable JSON de l'objecte o generar un TypeError. Si no s'especifica, es genera TypeError.
claus_ordenar: Si sort_keys és True (per defecte: False), la sortida dels diccionaris s'ordenarà per clau.

Exemple #1: Passar el diccionari de Python a la funció json.dumps() retornarà una cadena.



Python 3






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))>

>

>

Sortida

Cadena json equivalent del diccionari: {1: Welcome, 2: to, 3: Geeks, 4: for, 5: Geeks}

Exemple #2: En establir les tecles de salt a True (per defecte: Fals), ometem automàticament les tecles que no són de tipus bàsic.

Python 3




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)>

>

>

Sortida

Cadena json equivalent del diccionari: {2: to, 3: Geeks, 4: for, 5: Geeks}

Exemple #3:

Python 3




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)>

>

>

Sortida:

Cadena json equivalent del diccionari: {2: to, 3: Geeks, 4: for, 5: Geeks, 6: NaN}

Exemple #4:

Python 3




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)>

>

>

Sortida:

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

Exemple #5:

Python 3


bucle del programa java



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)>

>

>

Sortida:

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

Exemple #6:

Python 3




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)>

>

>

Sortida:

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