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))
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í.
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)
{"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:
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)
[ { "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)
[ { "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