In Desarrollo Última actualizaciónated:
Comparte en:
Cloudways ofrece alojamiento en la nube administrado para empresas de cualquier tamaño para alojar un sitio web o aplicaciones web complejas.

JSON es un formato popular para el intercambio de datos. Python se envía con un incorporado 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 crearate Cadenas JSON en Python y
  • cómo leer y escribir en archivos JSON en Python.

¡Empecemos!⏳

¿Qué es el JSON?

JSON representa JavaScript Oobjeto Notación, y es una basado en texto formato para el intercambio de datos. Aunque JSON es inicialally inspirado por objetos JavaScript, casi todos los lenguajes de programación son compatibles trabajando con JSON.

Si alguna vez ha trabajado con API o ha leído archivos de configuración, es probable que 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 potentes estructuras de datos integradas en Python que almacenan datos en pares clave-valor.

Antes de continuar, aquí hay algunos puntos que vale la pena señalar:

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

Para obtener más detalles sobre los tipos de datos que son translated de JSON a Python, lea los documentos aquí.

A este tenor, 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> = json.loads(<json_str>)

Aquí,

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

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

Vamos a codificar un ejemplo. Aquí 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. Puede utilizar el integrado type() función para verificar 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 crearate Cadenas JSON en Python

Supongamos que tienes un diccionario de Python. Entonces, ¿cómo crees?ate ¿Una cadena JSON de él?

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

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

Aquí,

  • <dict_obj> es el diccionario de Python desde el cual le gustaría crearate la cadena JSON,
  • <json_str> es la cadena JSON resultante.

Entonces el 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, descarguemos el diccionario modificado en una nueva cadena JSON json_str2 usando 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 parámetro indent para agregar sangría.

Y puedes hacer esto 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.

Nota: 💡 Si desea que las claves se clasifiquen en orden alfabético, puede configurar el sort_keys parámetro para True.

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

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 trabajar con cadenas JSON en Python. En la siguiente sección, aprenderá a trabajar con archivos JSON.

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.

Observe cómo usamos el load() método y no el loads() método. loads() carga un cadena JSON, mientras load() carga un Archivo JSON.

Debería considerar el uso de administradores de contexto cuando trabaje con archivos en Python. También puede intentar leer 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 un desperdicio potencial de recursos.

Sin embargo, al trabajar con gestores de contexto, los archivos son automáticosally se cierra una vez que se completan las operaciones del archivo.

Y puede usar el administrador de contexto para leer 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 lee de un archivo, especifique el modo como leer—índicoated por 'r' en el código anterior.

Nota: Para navegarate fácilmente a través del 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 al archivo.

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

Cómo escribir en un archivo JSON en Python

Para escribir en un archivo JSON existente o crearate un nuevo archivo JSON, utilice 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 

Así que la sintaxis anterior vuelca el diccionario <dict_obj> en el archivo JSON <json_file>.

En la prevsección ious, 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() función:

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

Nota: Abrir un archivo en el escribir modo (w) sobrescribe el contenido si el archivo existe. Si el archivo no existe, el archivo está creado.ated.

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

Al escribir en archivos, el objetivo clave es el almacenamiento de datos. Y si desea conservar el formato, también puede utilizar el indent y sort_keys parámetros.

Para Concluir

⏲ ​​Es hora de un resumen rápido.

En este tutorial, has aprendido:

  • los conceptos básicos del uso de JSON,
  • cómo utilizar el loads() y load() métodos para leer cadenas JSON y archivos JSON respectivamente,
  • cómo utilizar 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. ¡Feliz aprendizaje!

También puede mirar Herramientas JSON para analizar, formatear y validarate.

Comparte en:
  • Bala Priya C.
    Autor
    Bala Priya es desarrolladora y técnica. writer de la India con más de tres años de experiencia en el ámbito de la redacción de contenidos técnicos. Comparte su aprendizaje con la comunidad de desarrolladores mediante la creación de tutoriales tecnológicos, guías prácticas y más….

Gracias a nuestros patrocinadores

Más lecturas interesantes sobre el desarrollo

Impulse su negocio

Algunas de las herramientas y servicios para ayudar a su negocio grow.
  • La herramienta de conversión de texto a voz que utiliza IA para generarate Voces realistas parecidas a las humanas.

    Intente Murf AI
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.

    Prueba Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno para ayudarlo a administrar proyectos, tareas, trabajo, ventas, CRM, operaciones, workflows, y más.

    Intente Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.

    Intente Intruder