JSON es un acrónimo que significa notación de objetos JavaScript. A pesar de su nombre, JSON es un formato independiente del idioma que se usa más comúnmente para transmitir datos entre sistemas y, en ocasiones, almacenar datos. Los programas escritos en Python, así como muchos otros lenguajes de programación, pueden ingerir datos con formato JSON y pueden serializar datos en la memoria al formato JSON. Pitón admite JSON a través de un paquete integrado llamado json. Para utilizar esta función, importe el paquete json al script o módulo de Python en el que desea serializar o deserializar sus datos. JSON utiliza pares clave-valor delimitados por comas contenidos entre comillas dobles y separados por dos puntos. El cuerpo de un archivo JSON se puede delimitar entre llaves { } o llaves cuadradas [] (también conocidos como corchetes en algunas configuraciones regionales). El formato JSON parece ser similar al diccionario en Python, pero los detalles del formato JSON tienen diferencias significativas, así que tenga cuidado al trabajar con ambos formatos.
Nota: Para obtener más información, consulte Leer, Escribir y analizar JSON usando Python
Json.volcados()
La función json.dumps() convertirá un subconjunto de objetos de Python en una cadena json. No todos los objetos son convertibles y es posible que necesites crear un diccionario de datos que deseas exponer antes de serializarlos a JSON.
Sintaxis:
json.dumps(obj, *, skipkeys=False, sure_ascii=True, check_circular=True, enable_nan=True, cls=Ninguno, indent=Ninguno, separators=Ninguno, default=Ninguno, sort_keys=False, **kw)
Parámetros:
objeto: Serializar obj como una secuencia con formato JSON
saltar teclas: Si skipkeys es Verdadero (predeterminado: Falso), las claves de dictado que no sean de un tipo básico (str, int, float, bool, Ninguno) se omitirán en lugar de generar un TypeError.
asegurar_ascii: Si asegurar_ascii es Verdadero (el valor predeterminado), se garantiza que la salida tendrá todos los caracteres entrantes que no sean ASCII. Si sure_ascii es False, estos caracteres se generarán tal cual.
check_circular: Si check_circular es False (predeterminado: True), entonces se omitirá la verificación de referencia circular para los tipos de contenedores y una referencia circular dará como resultado un OverflowError (o algo peor).
Permitir: Si enable_nan es False (predeterminado: True), entonces será un ValueError serializar valores flotantes fuera de rango (nan, inf, -inf) en estricto cumplimiento de la especificación JSON. Si enable_nan es True, se utilizarán sus equivalentes de JavaScript (NaN, Infinity, -Infinity).
sangrar: Si la sangría es un número entero o una cadena no negativa, los elementos de la matriz JSON y los miembros del objeto se imprimirán con ese nivel de sangría. Un nivel de sangría de 0, negativo o solo insertará nuevas líneas. Ninguno (el valor predeterminado) selecciona la representación más compacta. El uso de una sangría entera positiva sangría esa cantidad de espacios por nivel. Si la sangría es una cadena (como ), esa cadena se usa para sangrar cada nivel.
separadores: Si se especifica, los separadores deben ser una tupla (item_separator, key_separator). El valor predeterminado es (', ', ': ') si la sangría es Ninguna y (', ', ': ') en caso contrario. Para obtener la representación JSON más compacta, debe especificar (',', ':') para eliminar los espacios en blanco.
por defecto: Si se especifica, default debería ser una función que se llame para objetos que de otro modo no se pueden serializar. Debería devolver una versión codificable JSON del objeto o generar un TypeError. Si no se especifica, se genera TypeError.
ordenar_claves: Si sort_keys es Verdadero (predeterminado: Falso), la salida de los diccionarios se ordenará por clave.
Ejemplo 1: Pasar el diccionario de Python a la función json.dumps() devolverá una cadena.
Python3
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))> |
>
¿Qué tan grande es mi monitor?
>
Producción
Cadena json equivalente del diccionario: {1: Bienvenido, 2: para, 3: Geeks, 4: for, 5: Geeks}
Ejemplo #2: Al configurar las teclas de omisión en Verdadero (predeterminado: Falso), omitimos automáticamente las claves que no son de tipo básico.
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)> |
>
>
Producción
Cadena json equivalente del diccionario: {2: to, 3: Geeks, 4: for, 5: Geeks}
Ejemplo #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)> |
>
>
Producción :
Cadena json equivalente del diccionario: {2: to, 3: Geeks, 4: for, 5: Geeks, 6: NaN}
Ejemplo #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)> |
>
>
Producción:
Equivalent json string of dictionary: { '2': 'to', '3': 'Geeks', '4': 'for', '5': 'Geeks', '6': NaN }>
Ejemplo #5:
Python3
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)> |
>
>
Producción:
Equivalent json string of dictionary: { '2' = 'to'. '3' = 'Geeks'. '4' = 'for'. '5' = 'Geeks'. '6' = NaN }>
Ejemplo #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)> |
>
>
Producción:
Equivalent json string of dictionary: { 'a' = 'Geeks'. 'b' = 'to'. 'c' = 'Welcome' }>