logo

Leer, escribir y analizar JSON usando Python

JSON es un formato de datos liviano para el intercambio de datos que los humanos pueden leer y escribir fácilmente, y las máquinas pueden analizar y generar fácilmente. Es un formato de texto completo e independiente del idioma. Para trabajar con datos JSON, Python tiene un paquete integrado llamado JSON.

Ejemplo de cadena JSON

s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}'>

La sintaxis de JSON se considera un subconjunto de la sintaxis de javascript incluyendo lo siguiente:



  • Pares de nombre/valor: Representa datos, el nombre va seguido de dos puntos ( : ), y los pares Nombre/Valor están separados por una coma ( , ).
  • Llaves rizadas: Sostiene objetos.
  • Corchetes: Mantenga matrices con valores separados por una coma ( , ).

Las claves/nombre deben ser cadenas con comillas dobles y los valores deben ser tipos de datos entre los siguientes:

Ejemplo de archivo JSON:

 {  'employee': [  {  'id': '01',  'name': 'Amit',  'department': 'Sales'  },  {  'id': '04',  'name': 'sunil',  'department': 'HR'  }  ] }>

Cadena JSON de análisis de Python

En el siguiente código, convertiremos JSON en un objeto Python. Para analizar la cadena JSON de Python, primero importamos el módulo JSON. Tenemos una cadena JSON almacenada en una variable 'empleado' y convertimos esta cadena JSON en un objeto Python usando json.cargas() Método del módulo JSON en Python. Después de eso, imprimimos el nombre de un empleado usando la clave 'nombre'. .

Python3




# Python program to convert JSON to Python> import> json> # JSON string> employee>=>'{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict>=> json.loads(employee)> print>(employee_dict)> print>(employee_dict[>'name'>])>

>

java leyendo csv

>

Producción

{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin>

Python lee el archivo JSON

Supongamos que tenemos un archivo JSON con este aspecto.

pyhton-append-json1

Aquí, hemos utilizado la función open() para leer el archivo JSON. Luego, el archivo se analiza utilizando el método json.load() que nos proporciona un diccionario llamado datos.

Python3




import> json> # Opening JSON file> f>=> open>(>'data.json'>,)> # returns JSON object as> # a dictionary> data>=> json.load(f)> # Iterating through the json> # list> for> i>in> data[>'emp_details'>]:> >print>(i)> # Closing file> f.close()>

>

>

Producción:

python-lectura-json-salida1

Convertir Python Dict a JSON

En el siguiente código, estamos convirtiendo un diccionario de pitón a un objeto JSON usando json.volcados() Método del módulo JSON en Python. Primero importamos el módulo JSON y luego creamos un pequeño diccionario con algunos pares clave-valor y luego lo pasamos al método json.dumps() con 'indent=4' para convertir este diccionario Python en un objeto JSON. Como le hemos dado el valor de sangría a 4, hay cuatro espacios en blanco antes de cada dato, como se ve en el resultado.

Python3




# Python program to convert> # Python to JSON> import> json> > # Data to be written> dictionary>=> {> >'id'>:>'04'>,> >'name'>:>'sunil'>,> >'department'>:>'HR'> }> > # Serializing json> json_object>=> json.dumps(dictionary, indent>=> 4>)> print>(json_object)>

>

>

Producción

{ 'id': '04', 'name': 'sunil', 'department': 'HR' }>

Los siguientes tipos de objetos Python se pueden convertir en cadenas JSON:

Objetos Python y su conversión equivalente a JSON:

Pitón

Equivalente a JSON

dictar

objeto

lista, tupla

formación

cadena

cadena

int, flotar

número

Verdadero

verdadero

FALSO

FALSO

Ninguno

nulo

Escribir JSON en un archivo en Python

Podemos escribir JSON en un archivo usando la función json.dump() del módulo JSON y el manejo de archivos en Python. En el siguiente programa, hemos abierto un archivo llamado sample.json en modo de escritura usando 'En' . El archivo se creará si no existe. Json.dump() transformará el diccionario de Python en una cadena JSON y se guardará en el archivo sample.json.

Python3

interruptor java int




# Python program to write JSON> # to a file> import> json> > # Data to be written> dictionary>=>{> >'name'> :>'sathiyajith'>,> >'rollno'> :>56>,> >'cgpa'> :>8.6>,> >'phonenumber'> :>'9976770500'> }> > with>open>(>'sample.json'>,>'w'>) as outfile:> >json.dump(dictionary, outfile)>

>

>

Producción:

python-json-escritura en archivo

Python Pretty Print JSON

Cuando convertimos una cadena a JSON, los datos están en un formato menos legible. Para hacerlo más legible, podemos usar una impresión bonita pasando argumentos adicionales en la función json.dumps() como sangrar y ordenar_claves como se utiliza en el siguiente código.

Python3




# Python program to convert JSON to Python> import> json> # JSON string> employee>=>'{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict>=> json.loads(employee)> # Pretty Printing JSON string back> print>(json.dumps(employee_dict, indent>=> 4>, sort_keys>=> True>))>

>

>

Producción

{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }>