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 json
mó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:
Para trabajar con JSON, simplemente importe el módulo en la parte superior de su archivo:
import json
Codificando JSON en Python
El json
módulo tiene dos métodos para codificar objetos de Python en cadenas con formato JSON: dump()
y 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
:
{"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:
[
{
"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.
0 Comentarios