json data in python

Cómo usar datos JSON en Python

Publicado por
Comparte en redes sociales


JSON es un formato popular para el intercambio de datos. Python viene con un JSON módulo para analizar y trabajar con datos JSON. Y este tutorial le enseñará todo sobre cómo trabajar con JSON en Python.

Al final de este tutorial, habrás aprendido:

  • los fundamentos de JSON,
  • cómo analizar y crear cadenas JSON en Python, y
  • cómo leer y escribir en archivos JSON en Python.

¡Empecemos!⏳

¿Qué es JSON?

JSON representado jAvaScripta Oobjeto NOotación, y es un basado en texto formato de intercambio de datos. Aunque JSON está inicialmente inspirado por objetos JavaScript, casi todos los lenguajes de programación son compatibles trabajar con JSON.

Si alguna vez ha trabajado con API o ha leído archivos de configuración, probablemente se haya topado con JSON.

📑 Envías y recibes datos en JSON al consultar las API. Y JSON también se usa ampliamente en la comunicación cliente-servidor en aplicaciones de software. Además, también puede usar JSON para el almacenamiento de datos de propósito general.

El formato de JSON es muy similar al de un diccionario de Python. Los diccionarios son poderosas estructuras de datos integradas en Python que almacenan datos en pares clave-valor.

Antes de continuar, aquí hay algunas cosas a tener en cuenta:

  • En Python, un objeto JSON se almacena como un diccionario.
  • Una matriz en JSON se almacena como una lista de Python.
  • En JSON, los valores booleanos se denotan true y false. En Python, estos se convierten en booleanos True y False.

Para obtener más detalles sobre los tipos de datos traducidos de JSON a Python, lea la documentación aquí.

Como el json El módulo es parte de la biblioteca estándar de Python, no es necesario que lo instale. Puede importar a su directorio actual, así:

import json

Cómo cargar una cadena JSON en Python

La sintaxis general para cargar una cadena JSON en Python es:

<dict_obj&gt; = json.loads(<json_str&gt;)

Aquí mismo,

  • <dict_obj> es el diccionario de Python en el que desea cargar la cadena JSON,
  • <json_str> es una cadena JSON válida.

Esto carga el <json_str> en el diccionario de Python <dict_obj>.

Codifique un ejemplo. Aquí mismo json_str es una cadena JSON.

json_str = '''
{
    "books": [
        {
            "title": "The Wind in the Willows",
            "author": "Kenneth Grahame",
            "year": "1908"
        },
        {
            "title": "To the Lighthouse",
            "author": "Virginia Woolf",
            "year": "1927"
        }
    ]
}
'''

Y el fragmento de código a continuación muestra cómo puede cargar la cadena JSON json_str en un diccionario de Python usando el loads() método. Puedes usar el type() función para comprobar que py_dict es un diccionario de Python.

py_dict = json.loads(json_str)

type(py_dict)

# Output: dict

print(py_dict)

# Output
{'books': [{'title': 'The Wind in the Willows', 
'author': 'Kenneth Grahame', 'year': '1908'}, 
{'title': 'To the Lighthouse', 'author': 'Virginia Woolf', 'year': '1927'}]}

Como se muestra en el código anterior, todos los campos en la cadena JSON son pares clave-valor en py_dict.

Cómo crear cadenas JSON en Python

Suponga que tiene un diccionario de Python. Entonces, ¿cómo se crea una cadena JSON a partir de ella?

Leer también  Análisis de varianza (ANOVA) explicado en menos de 5 minutos

Puedes hacer esto usando el dumps() método con esta sintaxis:

<json_str> = json.dumps(<dict_obj>)

Aquí mismo,

  • <dict_obj> es el diccionario de Python desde el que desea crear la cadena JSON,
  • <json_str> es la cadena JSON resultante.

Por lo tanto, la dumps() volcados de método <dict_obj> en una cadena JSON <json_str>.

A nuestro diccionario Python existente py_dict. agreguemos una nueva clave "movies". Puede hacerlo como se muestra en el siguiente fragmento de código:

py_dict["movies"] = [{"title":"The Imitation Game","year":"2014",
"lang":"en","watched":True}]

Ahora vamos a volcar el diccionario modificado en una nueva cadena JSON. json_str2 utilizando el dumps() método.

json_str2 = json.dumps(py_dict)

print(json_str2)

# Output
{"books": [{"title": "The Wind in the Willows", "author": "Kenneth Grahame", "year": "1908"}, 
{"title": "To the Lighthouse", "author": "Virginia Woolf", "year": "1927"}], 
"movies": [{"title": "The Imitation Game", "year": "2014", "lang": "en", "watched": true}]}

Como puede ver en el ejemplo anterior, la cadena JSON de salida es difícil de leer sin el formato adecuado. Puedes usar el Opcional ajuste indent para agregar una sangría.

Y puedes hacerlo configurando indent a un número entero como 2, como se muestra a continuación:

json_str2 = json.dumps(py_dict, indent = 2)
print(json_str2)

# Output
{
  "books": [
    {
      "title": "The Wind in the Willows",
      "author": "Kenneth Grahame",
      "year": "1908"
    },
    {
      "title": "To the Lighthouse",
      "author": "Virginia Woolf",
      "year": "1927"
    }
  ],
  "movies": [
    {
      "title": "The Imitation Game",
      "year": "2014",
      "lang": "en",
      "watched": true
    }
  ]
}

Observe cómo se ha formateado la salida con sangría, y es fácil de seguir.

Notar: 💡 Si desea que las claves se ordenen alfabéticamente, puede sort_keys parámetro a True.

Como puede ver en el fragmento de código a continuación, las claves ahora se han ordenado alfabéticamente.

json_str2 = json.dumps(py_dict, indent = 2, sort_keys=True)
print(json_str2)

# Output
{
  "books": [
    {
      "author": "Kenneth Grahame",
      "title": "The Wind in the Willows",
      "year": "1908"
    },
    {
      "author": "Virginia Woolf",
      "title": "To the Lighthouse",
      "year": "1927"
    }
  ],
  "movies": [
    {
      "lang": "en",
      "title": "The Imitation Game",
      "watched": true,
      "year": "2014"
    }
  ]

Y las claves ahora aparecen en orden alfabético: "author", "title" y "year".

Hasta ahora ha aprendido a usar cadenas JSON en Python. En la siguiente sección, aprenderá a trabajar con archivos JSON.

Leer también  Create Informative Manuals with These 11 User Manual Software

Cómo leer un archivo JSON en Python

Leer un archivo JSON en Python, use la siguiente sintaxis:

json.load(<json-file>) 

# where <json-file> is any valid JSON file.

Fíjate cómo usamos el load() método y no el loads() método. loads() cargar uno cadena JSON, mientras que load() cargar uno archivo JSON.

Debería considerar el uso de administradores de contexto cuando trabaje con archivos en Python. síTambién puede intentar leer los archivos de la siguiente manera, sin usar el administrador de contexto:

my_file = open('students.json','r')

contents = my_file.read()

print(contents)

file.close()

Si no cierra el archivo, puede haber una posible pérdida de recursos.

Sin embargo, al trabajar con administradores de contextolos archivos se cierran automáticamente cuando se completan las operaciones de archivos.

Y puede usar el administrador de contexto para leer los archivos, como se muestra a continuación:

with open('students.json','r') as file:   data = json.load(file) print(data) # Output {'students': [{'roll_num': 'cs27', 'name': 'Anna', 'course': 'CS'}, {'roll_num': 'ep30', 'name': 'Kate', 'course': 'PHY'}]}

Mientras reproduce un archivo, especifique el modo como leer-indicado por 'r' en el código de arriba.

Notar: Para navegar fácilmente al directorio actual, asegúrese de que el archivo JSON esté en la misma carpeta que main.py, como se muestra en la imagen de abajo. Si su archivo JSON está en una carpeta diferente, asegúrese de especificar la ruta del archivo.

leer-archivo-json-en-python
Lea el archivo JSON en Python.

En la siguiente sección, aprenderá cómo escribir en un archivo JSON.✍

Cómo escribir en un archivo JSON en Python

Para escribir en un archivo JSON existente o para crear un nuevo archivo JSON, use el dump() método como se muestra:

json.dump(<dict_obj>,<json_file>)
# where <dict_obj> is a Python dictionary 

# and <json_file> is the JSON file 

Entonces la sintaxis anterior vacía el diccionario <dict_obj> en archivo JSON <json_file>.

En la sección anterior, teníamos el diccionario py_dict. Ahora vamos a volcar eso en un nuevo archivo JSON. Y vamos a nombrarlo new_file.json.

Y la siguiente celda de código muestra cómo puede usar el dump() Una función:

with open('new_file.json','w') as file:
  json.dump(py_dict,file)

Notar: Abrir un archivo en el escribir modos (w) sobrescribe el contenido si el archivo existe. Si el archivo no existe, se crea el archivo.

Después de ejecutar la celda de código anterior, verá que se ha creado un nuevo archivo JSON en el directorio de trabajo actual. Y puede continuar y examinar el contenido del archivo JSON.

Leer también  12 Best Smart Robots To Gift Your Kids
crear-archivo-python-json
Crear un archivo JSON en Python

Al escribir en archivos, el propósito principal es el almacenamiento de datos. Y si desea mantener el formato, también puede utilizar el indent y sort_keys configuraciones.

Conclusión

⏲ ​​Llegó el momento del pequeño resumen.

En este tutorial, aprendiste:

  • los conceptos básicos del uso de JSON,
  • como usar el loads() y load() métodos para leer cadenas JSON y archivos JSON respectivamente,
  • como usar el dumps() y dump() métodos para volcar diccionarios de Python en cadenas JSON y archivos JSON respectivamente.

Espero que hayas encontrado útil este tutorial. ¡Buen aprendizaje!

También puede consultar las herramientas JSON para analizar, formatear y validar.



Source link

Si quiere puede hacernos una donación por el trabajo que hacemos, lo apreciaremos mucho.

Direcciones de Billetera:

- BTC: 14xsuQRtT3Abek4zgDWZxJXs9VRdwxyPUS 

- USDT: TQmV9FyrcpeaZMro3M1yeEHnNjv7xKZDNe 

- BNB: 0x2fdb9034507b6d505d351a6f59d877040d0edb0f

- DOGE: D5SZesmFQGYVkE5trYYLF8hNPBgXgYcmrx 

También puede seguirnos en nuestras Redes sociales para mantenerse al tanto de los últimos post de la web:

-Twitter

- Telegram

Disclaimer: En Cryptoshitcompra.com no nos hacemos responsables de ninguna inversión de ningún visitante, nosotros simplemente damos información sobre Tokens, juegos NFT y criptomonedas, no recomendamos inversiones

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *