JSON (Notación de objetos de JavaScript) es un formato de datos basado en texto que es intercambiable con muchos lenguajes de programación. Se utiliza comúnmente para la transmisión de datos entre aplicaciones cliente-servidor. Por lo general, las versiones reducidas del texto JSON se transmiten para ahorrar ancho de banda. Sin embargo, para la depuración y el análisis, se requiere una versión mejorada o una bonita impresión de JSON. Esencialmente, JSON de impresión bonita significa tener sangría adecuada, espacios en blanco y separadores.
Ejemplo:
Input: '[ {"studentid": 1, "name": "ABC", "subjects": ["Python", "Data Structures"]}]' Output: [ { "studentid": 1, "name": "ABC", "subjects": [ "Python", "Data Structures" ] } ]
Sintaxis de json.dumps()
Primero, use el método json.loads() para convertir JSON String en objeto Python. Para convertir este objeto en una bonita string JSON, se utiliza el método json.dumps(). A continuación se muestran ejemplos y pasos para comprender mejor estos casos.
Sintaxis: json.dumps(obj, sangría, separador)
Parámetro:
- objeto:
- sangría: un nivel de sangría de 0, negativo o «» solo insertará líneas nuevas.
- separadores:
Bonita string JSON de impresión
Ejemplo 1
Este método tiene la sangría del parámetro para especificar el número de espacios y un parámetro separador para especificar el separador entre clave y valor. De forma predeterminada, el separador es una coma entre pares clave-valor y dos puntos entre clave y valor. Si el parámetro de sangría de json.dumps() es negativo, 0 o una string vacía, no hay sangrías y solo se insertan líneas nuevas. De forma predeterminada, la sangría es Ninguna y los datos se representan en una sola línea.
Python3
# Import required libraries import json # Initialize JSON data json_data = '[ {"studentid": 1, "name": "ABC", \ "subjects": ["Python", "Data Structures"]}, \ {"studentid": 2, "name": "PQR",\ "subjects": ["Java", "Operating System"]} ]' # Create Python object from JSON string data obj = json.loads(json_data) # Pretty Print JSON json_formatted_str = json.dumps(obj, indent=4) print(json_formatted_str)
Producción:
[ { "studentid": 1, "name": "ABC", "subjects": [ "Python", "Data Structures" ] }, { "studentid": 2, "name": "PQR", "subjects": [ "Java", "Operating System" ] } ]
Ejemplo 2
Datos JSON bastante impresos en un archivo con sangría = 0 .
Python3
# Import required libraries import json # Initialize JSON data json_data = '[ {"studentid": 1, "name": "ABC", \ "subjects": ["Python", "Data Structures"]},\ {"studentid": 2, "name": "PQR", \ "subjects": ["Java", "Operating System"]} ]' # Create Python object from JSON string data obj = json.loads(json_data) # Pretty Print JSON json_formatted_str = json.dumps(obj, indent=0) print(json_formatted_str)
Producción:
[ { "studentid": 1, "name": "ABC", "subjects": [ "Python", "Data Structures" ] }, { "studentid": 2, "name": "PQR", "subjects": [ "Java", "Operating System" ] } ]
Escribir datos JSON de Pretty Print en un archivo
Para escribir un objeto de Python como datos con formato JSON en un archivo, se utiliza el método json.dump(). Al igual que el método json.dumps(), tiene las sangrías y los parámetros de separación para escribir JSON embellecido.
Python3
# Import required libraries import json data = [{"studentid": 1, "name": "ABC", "subjects": ["Python", "Data Structures"]}, {"studentid": 2, "name": "PQR", "subjects": ["Java", "Operating System"]}] # Write pretty print JSON data to file with open("filename.json", "w") as write_file: json.dump(data, write_file, indent=4)
Producción:
Lea datos JSON e imprímalos bastante
Ejemplo 1
Para leer JSON desde un archivo o URL, use json.load(). Luego use json.dumps() para convertir el objeto (obtenido al leer el archivo) en una bonita string JSON impresa.
Python3
# Import required libraries import json # Read JSON data from file and pretty print it with open("filename.json", "r") as read_file: # Convert JSON file to Python Types obj = json.load(read_file) # Pretty print JSON data pretty_json = json.dumps(obj, indent=4) print(pretty_json)
Producción:
[ { "studentid": 1, "name": "ABC", "subjects": [ "Python", "Data Structures" ] }, { "studentid": 2, "name": "PQR", "subjects": [ "Java", "Operating System" ] } ]
Ejemplo 2
Aquí estamos usando el módulo pprint para imprimir bastante JSON para imprimir nuestro formato JSON.
Python3
import json import pprint with open("test.json", "r") as json_data: student = json.load(json_data) print(student) print("\n") # construct PrettyPrinter first pp = pprint.PrettyPrinter(indent=2, width=30, compact=True) print("Pretty Printing using pprint module") pp.pprint(student)
Producción:
{'Teacher_id': 1, 'name': 'Suraj', 'Salary': 50000, 'attendance': 80, 'Branch': ['English', 'Geometry', 'Physics', 'World History'], 'email': 'test@example.com'} Pretty Printing using pprint module ("{'Teacher_id': 1, 'name': " "'Suraj', 'Salary': 50000, " "'attendance': 80, " "'Branch': ['English', " "'Geometry', 'Physics', " "'World History'], 'email': " "'test@example.com'}")
Pretty-print JSON desde la línea de comando
En este ejemplo, estamos tratando de imprimir datos usando la línea de comando. Para validar e imprimir objetos JSON desde la línea de comandos, Python ofrece el paquete json.tool.
Python3
echo {"studentid": 1, "name": "ABC", "subjects": ["Python", "Data Structures"]} | python -m json.tool
Producción:
{ "studentid": 1, "name": "ABC", "subjects": [ "Python", "Data Structures" ] }
Publicación traducida automáticamente
Artículo escrito por akshisaxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA