JSON representa j ava S cripta oh objeto norte otación. Es un formato para estructurar datos. Este formato es utilizado por diferentes aplicaciones web para comunicarse entre sí. En este artículo, aprenderemos sobre JSON Pretty Print.
¿Qué es JSON?
JSON (Notación de objetos 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, se transmiten versiones minimizadas de texto JSON para ahorrar ancho de banda. Sin embargo, para la depuración y el análisis, se requiere una versión embellecida o un JSON bonito. Esencialmente, un JSON de impresión bonita significa tener una sangría, espacios en blanco y separadores adecuados.
Ejemplo:
Input: '[ {'studentid': 1, 'name': 'ABC', 'subjects': ['Python', 'Data Structures']}]' Output: [ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] } ]> json.dumps() en Python
Primero, use el método json.loads() para convertir JSON String a Pitón objeto. Para convertir este objeto en una cadena JSON de impresión bonita, 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:
¿Cuál es el número del alfabeto?
- objeto: Serializar obj como una secuencia con formato JSON
- sangrar: Si la sangría es un número entero o una cadena no negativa, los elementos de la matriz JSON y los miembros del objeto se imprimirán con ese nivel de sangría. Un nivel de sangría de 0, negativo o solo insertará nuevas líneas.
- separadores: Si se especifica, los separadores deben ser una tupla (item_separator, key_separator).
Cadena JSON con impresión bonita
Este método tiene el parámetro sangría 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 cadena vacía, entonces no hay sangrías y solo se insertan nuevas líneas. De forma predeterminada, la sangría es Ninguna y los datos se representan en una sola línea.
El código toma una cadena JSON que contiene registros de estudiantes, la analiza en una estructura de datos de Python y luego imprime los datos JSON con la sangría adecuada para mejorar la legibilidad.
Python3
import> json> json_data>=> '[ {>'studentid'>:>1>,>'name'>:>'ABC'>,> 'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]} ]'> obj>=> json.loads(json_data)> 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' ] } ]> Datos JSON bastante impresos en un archivo con sangría=0 .
El código toma una cadena JSON que contiene registros de estudiantes, la analiza en una estructura de datos de Python y luego imprime los datos JSON sin sangría, haciéndolos compactos y menos legibles.
Python3
import> json> json_data>=> '[ {>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]} ]'> obj>=> json.loads(json_data)> json_formatted_str>=> json.dumps(obj, indent>=>0>)> print>(json_formatted_str)> |
>
lista de matrices en java
>
Producción:
[ { 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }, { 'studentid': 2, 'name': 'PQR', 'subjects': [ 'Java', 'Operating System' ] } ]> Escriba datos JSON de Pretty Print en un archivo
Para escribir un objeto Python como datos en formato JSON Pretty Print en un archivo, se utiliza el método json.dump(). Al igual que el método json.dumps(), tiene sangrías y parámetros de separación para escribir JSON embellecido.
Python3
import> json> data>=> [{>'studentid'>:>1>,>'name'>:>'ABC'>,> >'subjects'>: [>'Python'>,>'Data Structures'>]},> >{>'studentid'>:>2>,>'name'>:>'PQR'>,> >'subjects'>: [>'Java'>,>'Operating System'>]}]> with>open>(>'filename.json'>,>'w'>) as write_file:> >json.dump(data, write_file, indent>=>4>)> |
>
>
Producción:
nombre de archivo.json
Leer datos JSON e imprimirlos de forma bonita
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 cadena JSON impresa.
Python3
barra de direcciones cromada
import> json> with>open>(>'filename.json'>,>'r'>) as read_file:> > >obj>=> json.load(read_file)> >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' ] } ]> Usando módulo pprint para imprimir JSON de forma bonita para imprimir nuestro formato JSON
Este código lee datos JSON de un archivo llamado test.json, los analiza en una estructura de datos de Python y luego los imprime usando el software integradoprint>función y elpprint>módulo. Elpprint>El módulo se utiliza para imprimir los datos JSON con opciones de formato específicas como una sangría de 2, un ancho de línea de 30 caracteres y representación compacta.
Python3
import> json> import> pprint> with>open>(>'test.json'>,>'r'>) as json_data:> >student>=> json.load(json_data)> >print>(student)> >print>(>'
'>)> 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': '[email protected]'} Pretty Printing using pprint module ('{'Teacher_id': 1, 'name': ' ''Suraj', 'Salary': 50000, ' ''attendance': 80, ' ''Branch': ['English', ' ''Geometry', 'Physics', ' ''World History'], 'email': ' ''[email protected]'}')> JSON de impresión bonita desde la línea de comando
En este ejemplo, intentamos 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> |
>
bash para el bucle 1 al 10
>
Producción:
{ 'studentid': 1, 'name': 'ABC', 'subjects': [ 'Python', 'Data Structures' ] }>