Cómo leer y escribir archivos JSON en Python

Cómo leer y escribir archivos JSON en Python
Este artículo explicará cómo manejar los archivos y datos JSON en el lenguaje de programación de Python. Python viene con un módulo "JSON" incorporado que hace que el manejo de datos JSON sea fácil y directo.

Sobre JSON

JSON (JavaScript Object Notation) es un formato de archivo y un estándar de almacenamiento de datos que utiliza pares de valor clave para almacenar e intercambiar datos. Es el formato de intercambio de datos más utilizado, a menudo visto en API RESTful, bases de datos livianas, archivos de configuración y otro software fuera de línea o en línea que necesita almacenar, recuperar e intercambiar datos. La mayoría de los lenguajes de programación incluyen bibliotecas para analizar y escribir datos JSON de forma predeterminada y JSON es un formato de datos agnósticos del lenguaje de programación. Los valores almacenados en un archivo JSON o carga útil generalmente contienen cadenas, números y tipos de datos en serie como listas (matrices).

Diccionarios JSON y Python

Los datos de JSON en Python se convierten en un objeto de diccionario mediante el método de "carga". A menudo se ve que algunas personas equiparan los datos JSON y un diccionario de Python, ya que la sintaxis para definirlos es casi el mismo. Sin embargo, los datos JSON no son más que una cadena de texto estructurada en una sintaxis rígida, mientras que un diccionario de Python es un objeto de estructura de datos almacenado en la memoria. Si desea almacenar datos de diccionario en un archivo de texto o enviarlos a otro programa que no sea Python, primero deberá convertirlos en una cadena de texto (bytes). Esta cadena de texto volcada / convertida se define en la sintaxis estándar de JSON y el proceso de convertir un diccionario de Python en una cadena compatible con JSON se llama serialización.

Leer y descargar datos JSON en Python

Los datos de JSON se pueden recuperar como un servidor de respuesta, leído desde el archivo, cortados de los parámetros de consulta de URL, etc. Este artículo se centrará principalmente en leer datos JSON de un archivo almacenado localmente. Supongamos que una "prueba.El archivo JSON ”contiene los siguientes datos:

"nombre de código": "eoan ermine", "versión": "ubuntu 19.10 "

Para leer la prueba.Archivo JSON en Python, puede usar el código a continuación:

importar json
con abierto ("Prueba.json ") como f:
datos = JSON.Carga (f)
volcado = JSON.volcados (datos)
Imprimir (datos)
Imprimir (tipo (datos))
Imprimir (volcado)
Imprimir (tipo (volcado))

La primera línea en el código anterior importa el módulo JSON. En la siguiente línea, "With Open" se usa para leer de forma segura el contenido del archivo. Dentro del bloque "con abierto", "Json.El método de carga "se utiliza para leer y almacenar contenido del archivo en la variable" datos ". Los datos cargados en el paso anterior se convierten nuevamente en la cadena JSON utilizando el "JSON.método de vertido ". Ejecutar el código anterior mostrará la siguiente salida:

'CodeName': 'Eoan ermine', 'versión': 'Ubuntu 19.10 '

"nombre de código": "eoan ermine", "versión": "ubuntu 19.10 "

Observe en la salida anterior que el "JSON.El método de carga "lee los datos de JSON en un diccionario de Python mientras" JSON.Métodos de descarga "convierte un diccionario en una cadena que sea compatible con la estructura JSON. Una vez que un objeto JSON se ha convertido en un objeto de diccionario de Python, puede usar métodos de diccionario Python incorporados para manejar los datos. El ejemplo anterior es bastante básico y no incluye matrices en datos JSON o valores anidados. Sin embargo, dentro de Python, puede manejar estos valores como cualquier otro diccionarios y listas anidados.

Clasificar e imprimir bonitas datos JSON

El "JSON.El método de volcado "admite algunos parámetros opcionales para clasificar claves e imprimir bonita la salida para una mejor legibilidad.

importar json
con abierto ("Prueba.json ") como f:
datos = JSON.Carga (f)
volcado = JSON.volcados (datos, sort_keys = true, sangría = 4)
Imprimir (volcado)

El código anterior mostrará la siguiente salida:


"nombre de código": "eoan armine",
"Versión": "Ubuntu 19.10 "

Conversiones de tipo de datos

La siguiente lista ilustra cómo los valores JSON se convierten en objetos de Python y viceversa.

Json Pitón
cadena stri
número int o flotante
verdadero Falso Verdadero Falso
nulo Ninguno
formación lista
objeto dictarse

Json.Módulo de línea de comando de herramienta

Python incluye una buena utilidad de línea de comandos "JSON.herramienta ”que se puede usar para validar y imprimir bonitas cadenas y archivos JSON.

$ Echo '"CodeName": "Eoan ermine", "Versión": "Ubuntu 19.10 " '| python3 -m json.herramienta

Ejecutar el comando anterior le mostrará la siguiente salida:


"nombre de código": "eoan armine",
"Versión": "Ubuntu 19.10 "

También puedes usar JSON.Herramienta con archivos JSON. Reemplace "in_file" y "out_file" en el comando a continuación con los valores deseados:

$ python3 -m json.herramienta en_file out_file

Aparte de la impresión bonita, la clasificación y la validación de los datos JSON, JSON.La herramienta no hace nada más. Entonces, si desea manipular los datos JSON, debe escribir su propio código personalizado utilizando el módulo JSON incorporado.