Cómo leer y escribir archivos Json en Python

How Read Write Json Files Python



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

Sobre JSON

JSON (JavaScript Object Notation) es un formato de archivo y un estándar de almacenamiento de datos que utiliza pares clave-valor para almacenar e intercambiar datos. Es el formato de intercambio de datos más utilizado, a menudo visto en API RESTful, bases de datos ligeras, archivos de configuración y otro software en línea o fuera de 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 independiente del lenguaje de programación. Los valores almacenados en un archivo JSON o carga útil generalmente contienen cadenas, números y tipos de datos serializables como listas (matrices).







Diccionarios JSON y Python

Los datos 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 definir ambos es casi la misma. 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 del diccionario en un archivo de texto o enviarlo a otro programa que no sea Python, primero deberá convertirlo 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.



Lectura y volcado de datos JSON en Python

Los datos JSON se pueden recuperar como una respuesta de un servidor, leer desde un archivo, cortar 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 un archivo test.json contiene los siguientes datos:



{'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10'}

Para leer el archivo test.json en python, puede usar el siguiente código:





importarjson

con abierto ('test.json') comoF:
datos=json.carga(F)

vertedero=json.deshecho(datos)

impresión (datos)
impresión (escribe(datos))
impresión (vertedero)
impresión (escribe(vertedero))

La primera línea del código anterior importa el módulo json. En la siguiente línea, con abrir se usa para leer con seguridad el contenido del archivo. Dentro del bloque with open, el método json.load se usa para leer y almacenar el contenido del archivo en la variable de datos. Los datos cargados en el paso anterior se vuelven a convertir en una cadena json utilizando el método json.dump. Ejecutar el código anterior mostrará el siguiente resultado:

{'nombre clave':'Eoan Armiño', 'versión':'Ubuntu 19.10'}
<clase 'dictar'>
{'nombre clave':'Eoan Armiño', 'versión':'Ubuntu 19.10'}
<clase 'str'>

Observe en el resultado anterior que el método json.load lee datos json sin procesar en un diccionario de Python, mientras que los métodos json.dumps convierten un diccionario en una cadena que es 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 de Python integrados 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 diccionario y lista anidados.



Ordenación e impresión bonita de datos JSON

El método json.dump admite algunos parámetros opcionales para ordenar las claves e imprimir de forma bonita la salida para mejorar la legibilidad.

importarjson

con abierto ('test.json') comoF:
datos=json.carga(F)

vertedero=json.deshecho(datos,sort_keys=Cierto,sangrar=4)
impresión (vertedero)

El código anterior mostrará el siguiente resultado:

{
'nombre en clave': 'Eoan Ermine',
'versión': 'Ubuntu 19.10'
}

Conversiones de tipos de datos

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

JSON Pitón
cuerda pag
número int o flotar
verdadero Falso Verdadero Falso
nulo Ninguno
formación lista
objeto dictar

Módulo de línea de comandos Json.tool

Python incluye una buena utilidad de línea de comandos json.tool que se puede usar para validar e imprimir cadenas y archivos JSON.

$ echo'{' nombre en clave ':' Eoan Ermine ',' versión ':' Ubuntu 19.10 '}'| python3 -m json.herramienta

Ejecutar el comando anterior le mostrará el siguiente resultado:

{
'nombre en clave': 'Eoan Ermine',
'versión': 'Ubuntu 19.10'
}

También puede usar json.tool con archivos JSON. Reemplace in_file y out_file en el siguiente comando con sus valores deseados:

$ python3 -m json.herramientain_file out_file

Aparte de imprimir, ordenar y validar datos JSON, json.tool no hace nada más. Entonces, si desea manipular cualquier dato JSON, debe escribir su propio código personalizado utilizando el módulo JSON incorporado.