JSON es un formato de datos basado en texto legible por humanos. Es independiente del idioma y se utiliza para el intercambio de datos entre aplicaciones.

En este artículo, explicaremos cómo analizar datos JSON en Python.

PythonJSON

El jsonmódulo que le permite codificar y decodificar datos JSON es parte de la biblioteca estándar de Python.

JSON es una cadena que representa datos. La codificación o serialización significa transformar un objeto de Python en una cadena JSON que se puede almacenar en un archivo o transmitir a través de la red. Decodificación o deserialización: el proceso inverso de codificación en el que una cadena JSON se transforma en un objeto de Python.

A continuación se muestra una tabla que muestra los objetos de Python y su representación JSON equivalente:

PitónJSON
dictarobjeto
lista, tuplaformación
callecuerda
int, flotantenúmero
Ciertocierto
Falsofalso
Ningunanulo

Para trabajar con JSON, simplemente importe el módulo en la parte superior de su archivo:

import json

Codificando JSON en Python

El jsonmódulo tiene dos métodos para codificar objetos de Python en cadenas con formato JSON: dump()dumps().

El dump()método envía la salida a un objeto similar a un archivo. Toma dos argumentos posicionales: el objeto a codificar y el objeto similar a un archivo. Aquí hay un ejemplo:

data = {
    "country": "Germany",
    "vehicle": {
        "name": "Volkswagen",
        "model": "T-Roc"
    }
}

with open("file.json", "w") as file:
    json.dump(data, file)

Si ejecuta el script, creará un archivo llamado file.json:

archivo.json
{"country": "Germany", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}

El dumps()método funciona igual dump()pero en lugar de enviar la salida a un objeto similar a un archivo, devuelve una cadena:

data = {
    "country": "Germany",
    "vehicle": {
        "name": "Volkswagen",
        "model": "T-Roc"
    }
}

json.dumps(data)
'{"country": "Germany", "vehicle": {"name": "Volkswagen", "model": "T-Roc"}}'

Ambos métodos aceptan los mismos argumentos de palabras clave. Por ejemplo, si está analizando o depurando los datos JSON, es posible que desee especificar el nivel de sangría:

data = {
    "country": "Germany",
    "vehicle": {
        "name": "Volkswagen",
        "model": "T-Roc"
    }
}

print(json.dumps(data, indent=2))
{
  "country": "Germany",
  "vehicle": {
    "name": "Volkswagen",
    "model": "T-Roc"
  }
}

Decodificación de JSON en Python

Para transformar datos codificados en JSON en objetos de Python, use los métodos load()y .loads()

El load()método lee la estructura JSON de un objeto similar a un archivo y la transforma en un objeto de Python.

Digamos que tenemos el siguiente archivo JSON:

archivo.json
[
  {
    "userId": 1,
    "id": 1,
    "title": "Meet with Lisa",
    "completed": true
  },
  {
    "userId": 1,
    "id": 2,
    "title": "Design a prototype",
    "completed": false
  }
]

Para transformar los datos JSON en una representación de Python, usaría algo como esto:

import json

with open('file.json') as f:
  data = json.load(f)

type(data)

El JSON se transforma en una lista de Python, que puedes usar en tu código:

<class 'list'>

El loads()método convierte una cadena que contiene un documento JSON en un objeto de Python:

import json

json_str= '{"userId": "1", "id": "1", "title": "Meet with Lisa", "completed": "True"}'

print(json.loads(json_str))

La cadena se transforma en un diccionario de Python:

{'userId': '1', 'id': '1', 'title': 'Meet with Lisa', 'completed': 'True'}

Aquí hay un ejemplo más avanzado que muestra cómo hacer una solicitud de API y decodificar los datos JSON:

import json
import requests

response = requests.get("https://jsonplaceholder.typicode.com/users")
users = json.loads(response.text)

print(users)

Conclusión

Le mostramos cómo codificar y decodificar datos JSON en Python.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.