JSON con Python

JSON (Notación de objetos de JavaScript) es un archivo que se utiliza principalmente para almacenar y transferir datos principalmente entre un servidor y una aplicación web. Se utiliza popularmente para representar datos estructurados. En este artículo, discutiremos cómo manejar datos JSON usando Python. Python proporciona un módulo llamado json que viene con la utilidad integrada estándar de Python.

Nota: en Python, los datos JSON generalmente se representan como una string.

Módulo de importación

Para usar cualquier módulo en Python, siempre es necesario importar ese módulo. Podemos importar el módulo json usando la declaración de importación .

Ejemplo: importar módulo JSON

Python3

# importing json module
import json

Análisis de JSON: conversión de JSON a Python

Las funciones load() y loads() del módulo json facilitan el análisis del objeto JSON.
 

Análisis de string JSON

El método loads() se usa para analizar strings JSON en Python y el resultado será un diccionario de Python.

Sintaxis:

json.loads(json_string)

Ejemplo: convertir JSON en un diccionario

Python3

# Python program to convert JSON to Dict
 
 
import json
 
# JSON string
employee ='{"name": "Nitin", "department":"Finance",\
"company":"GFG"}'
 
# Convert string to Python dict
employee_dict = json.loads(employee)
print("Data after conversion")
print(employee_dict)
print(employee_dict['department'])
 
print("\nType of data")
print(type(employee_dict))
Producción

Data after conversion
{'name': 'Nitin', 'department': 'Finance', 'company': 'GFG'}
Finance

Type of data
<class 'dict'>

Nota: Para obtener más información, consulte Analizar datos de JSON a Python.

Leer archivo JSON

El método load() puede leer un archivo que contiene un objeto JSON. Supongamos que tiene un archivo llamado student.json que contiene datos de estudiantes y queremos leer ese archivo.

Sintaxis:

json.load(file_object)

Ejemplo: leer un archivo JSON usando Python

Supongamos que el archivo se ve así.

read json Python

Python3

# Python program to read
# json file
 
 
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:
    print(i)
 
# Closing file
f.close()

Producción:

Nota: 

  • Los datos JSON se convierten en una lista de diccionarios en Python
  • En el ejemplo anterior, hemos utilizado las funciones open() y close() para abrir y cerrar archivos JSON. Si no está familiarizado con el manejo de archivos en Python, consulte Manejo de archivos en Python .
  • Para obtener más información sobre el archivo JSON de lectura, consulte Leer archivo JSON con Python

Convertir de Python a JSON

El método dump() y dumps() del módulo json se puede usar para convertir un objeto de Python a JSON.

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

  • dictar
  • lista
  • tupla
  • cuerda
  • En t
  • flotar
  • Verdadero
  • Falso
  • Ninguna

Objetos de Python y su conversión equivalente a JSON:

Python  Equivalente JSON
dictar objeto
lista, tupla formación
calle cuerda
int, flotante número
Verdadero verdadero
Falso falso
Ninguna nulo

Conversión a string JSON

El método dumps() puede convertir un objeto Python en una string JSON.

Sintaxis:

json.dumps(dict, indent)

Toma dos parámetros:

  • diccionario: nombre del diccionario que debe convertirse en objeto JSON.
  • sangría: define el número de unidades para la sangría

Ejemplo: convertir el diccionario de Python en una string JSON

Python3

# Python program to convert
# Python to JSON
 
 
import json
 
# Data to be written
dictionary = {
    "name": "sunil",
    "department": "HR",
    "Company": 'GFG'
}
 
# Serializing json
json_object = json.dumps(dictionary)
print(json_object)
Producción

{"name": "sunil", "department": "HR", "Company": "GFG"}

Nota: Para obtener más información sobre cómo convertir JSON a string, consulte Python: convertir a string JSON

Escribir en un archivo JSON

El método dump() se puede usar para escribir en un archivo JSON.

Sintaxis:

json.dump(dict, file_pointer)

Toma 2 parámetros:

  • diccionario: nombre de un diccionario que debe convertirse en un objeto JSON.
  • Puntero de archivo: puntero del archivo abierto en modo escribir o agregar.

Ejemplo: escribir en un archivo JSON

Python3

# Python program to write JSON
# to a file
 
 
import json
 
# Data to be written
dictionary ={
    "name" : "Nisha",
    "rollno" : 420,
    "cgpa" : 10.10,
    "phonenumber" : "1234567890"
}
 
with open("sample.json", "w") as outfile:
    json.dump(dictionary, outfile)

Producción:

Python write json to file

Formateo de JSON  

En el ejemplo anterior, debe haber visto que cuando convierte el objeto de Python a JSON, no se formatea y la salida se presenta en línea recta. Podemos formatear el JSON pasando el parámetro de sangría al método dumps().

Ejemplo: formateo de JSON

Python3

# Import required libraries
import json
 
# Initialize JSON data
json_data = '[ {"studentid": 1, "name": "Nikhil", "subjects": ["Python", "Data Structures"]},\
{"studentid": 2, "name": "Nisha", "subjects": ["Java", "C++", "R Lang"]} ]'
 
# Create Python object from JSON string
# data
data = json.loads(json_data)
 
# Pretty Print JSON
json_formatted_str = json.dumps(data, indent=4)
print(json_formatted_str)
Producción

[
    {
        "studentid": 1,
        "name": "Nikhil",
        "subjects": [
            "Python",
            "Data Structures"
        ]
    },
    {
        "studentid": 2,
        "name": "Nisha",
        "subjects": [
            "Java",
            "C++",
            "R Lang"
        ]
    }
]

Nota: Para obtener más información, consulte Pretty Print JSON en Python

Ordenar JSON

Podemos ordenar los datos JSON con la ayuda del parámetro sort_keys del método dumps(). Este parámetro toma un valor booleano y devuelve el JSON ordenado si el valor pasado es True. De forma predeterminada, el valor que se pasa es Falso.

Ejemplo: ordenar JSON

Python3

# Import required libraries
import json
 
# Initialize JSON data
json_data = '[ {"studentid": 1, "name": "Nikhil", "subjects":\
["Python", "Data Structures"], "company":"GFG"},\
{"studentid": 2, "name": "Nisha", "subjects":\
["Java", "C++", "R Lang"], "company":"GFG"} ]'
 
# Create Python object from JSON string
# data
data = json.loads(json_data)
 
# Pretty Print JSON
json_formatted_str = json.dumps(data, indent=4, sort_keys=True)
print(json_formatted_str)
Producción

[
    {
        "company": "GFG",
        "name": "Nikhil",
        "studentid": 1,
        "subjects": [
            "Python",
            "Data Structures"
        ]
    },
    {
        "company": "GFG",
        "name": "Nisha",
        "studentid": 2,
        "subjects": [
            "Java",
            "C++",
            "R Lang"
        ]
    }
]

Publicación traducida automáticamente

Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *