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
yfalse
. En Python, estos se convierten en booleanosTrue
yFalse
.
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> = json.loads(<json_str>)
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?
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 aTrue
.
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.
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 elloads()
método.loads()
cargar uno cadena JSON, mientras queload()
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.
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.
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()
yload()
métodos para leer cadenas JSON y archivos JSON respectivamente, - como usar el
dumps()
ydump()
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.
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:
- 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