JSON es la notación de objetos de JavaScript. Significa que un archivo de secuencia de comandos (ejecutable) que está hecho de texto en un lenguaje de programación se utiliza para almacenar y transferir los datos. Python admite JSON a través de un paquete integrado llamado JSON. Para usar esta función, importamos el paquete JSON en el script de Python. El texto en JSON se realiza a través de una string entre comillas que contiene el valor en el mapeo de clave-valor dentro de { }. Es similar al diccionario en Python. JSON muestra una API similar a la de los usuarios de los módulos marshal y pickle de la biblioteca estándar, y Python admite de forma nativa las características de JSON. Por ejemplo:
Python3
# Python program showing # use of json package import json # {key:value mapping} a ={"name":"John", "age":31, "Salary":25000} # conversion to JSON done by dumps() function b = json.dumps(a) # printing the output print(b)
Producción:
{"age": 31, "Salary": 25000, "name": "John"}
Como puede ver, JSON admite tipos primitivos, como strings y números, así como listas anidadas, tuplas y objetos.
Python3
# Python program showing that # json support different primitive # types import json # list conversion to Array print(json.dumps(['Welcome', "to", "GeeksforGeeks"])) # tuple conversion to Array print(json.dumps(("Welcome", "to", "GeeksforGeeks"))) # string conversion to String print(json.dumps("Hi")) # int conversion to Number print(json.dumps(123)) # float conversion to Number print(json.dumps(23.572)) # Boolean conversion to their respective values print(json.dumps(True)) print(json.dumps(False)) # None value to null print(json.dumps(None))
Producción:
["Welcome", "to", "GeeksforGeeks"] ["Welcome", "to", "GeeksforGeeks"] "Hi" 123 23.572 true false null
Serializando JSON:
El proceso de codificación de JSON suele denominarse serialización . Este término se refiere a la transformación de datos en una serie de bytes (por lo tanto, en serie) para ser almacenados o transmitidos a través de una red. Para manejar el flujo de datos en un archivo, la biblioteca JSON en Python usa la función dump() para convertir los objetos de Python en su respectivo objeto JSON, por lo que facilita la escritura de datos en los archivos. Consulte la siguiente tabla que se proporciona a continuación.
objeto python | objeto JSON |
---|---|
dictar | objeto |
lista, tupla | formación |
calle | cuerda |
int, largo, flotante | números |
Verdadero | verdadero |
Falso | falso |
Ninguna | nulo |
Ejemplo: Serialización
Considere el ejemplo dado de un objeto de Python.
Python3
var = { "Subjects": { "Maths":85, "Physics":90 } }
Usando el administrador de contexto de Python , cree un archivo llamado Sample.json y ábralo con el modo de escritura.
Python3
with open("Sample.json", "w") as p: json.dump(var, p)
Aquí, el volcado() toma dos argumentos primero, el objeto de datos que se serializará y, en segundo lugar, el objeto en el que se escribirá (formato de byte).
Deserializando JSON:
La deserialización es lo opuesto a la serialización, es decir, la conversión de objetos JSON en sus respectivos objetos de Python. Para ello se utiliza el método load(). Si usó datos JSON de otro programa o los obtuvo como un formato de string de JSON, puede deserializarlos fácilmente con load(), que generalmente se usa para cargar desde una string; de lo contrario, el objeto raíz está en una lista o dictar
Python3
with open("Sample.json", "r") as read_it: data = json.load(read_it)
Ejemplo: deserialización
Python3
json_var =""" { "Country": { "name": "INDIA", "Languages_spoken": [ { "names": ["Hindi", "English", "Bengali", "Telugu"] } ] } } """ var = json.loads(json_var)
Codificación y decodificación:
La codificación se define como convertir el texto o los valores en una forma encriptada que solo puede ser utilizada por el usuario deseado mediante la decodificación. Aquí la codificación y decodificación se realiza para el formato JSON (objeto). La codificación también se conoce como serialización y la decodificación se conoce como deserialización. Python tiene un paquete popular para esta operación. Este paquete se conoce como Demjson . Para instalarlo sigue los siguientes pasos.
Para ventanas:
pip install demjson
Para Ubuntu:
sudo apt-get update sudo apt-get install python-demjson
Codificación : la función codificar() se utiliza para convertir el objeto python en una representación de string JSON.
Sintaxis:
demjson.encode(self, obj, nest_level=0)
Ejemplo 1: Codificación usando el paquete demjson.
Python3
# storing marks of 3 subjects var = [{"Math": 50, "physics":60, "Chemistry":70}] print(demjson.encode(var))
Producción:
[{"Chemistry":70, "Math":50, "physics":60}]
Decodificación : la función decode() se utiliza para convertir el objeto JSON en tipo de formato python.
Sintaxis:
demjson.decode(self, obj)
Ejemplo 2: decodificación usando el paquete demjson
Python3
var = '{"a":0, "b":1, "c":2, "d":3, "e":4}' text = demjson.decode(var)
Producción:
{'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4}
Ejemplo 3: Codificación usando el paquete iterencode
Python3
# Other Method of Encoding json.JSONEncoder().encode({"foo": ["bar"]}) '{"foo": ["bar"]}' # Using iterencode(object) to encode a given object. for i in json.JSONEncoder().iterencode(bigobject): mysocket.write(i)
Ejemplo 4: Codificación y decodificación mediante dumps() y loads().
Python3
# To encode and decode operations import json var = {'age':31, 'height':6} x = json.dumps(var) y = json.loads(x) print(x) print(y) # when performing from a file in disk with open("any_file.json", "r") as readit: x = json.load(readit) print(x)
Uso de la línea de comandos
La biblioteca JSON también se puede usar desde la línea de comandos para validar e imprimir su JSON.
$ echo "{ \"name\": \"Monty\", \"age\": 45 }"
Buscando a través de JSON con JMESPath
JMESPath es un lenguaje de consulta para JSON. Le permite obtener fácilmente los datos que necesita de un documento JSON. Si alguna vez trabajó con JSON, probablemente sepa que es fácil obtener un valor anidado. Por ejemplo, doc[«persona»][«edad»] obtendrá el valor anidado para la edad en un documento.
Primero, instale jmespath:
$ pip3 install jmespath
Ejemplo del mundo real:
Tomemos un ejemplo de la vida real de la implementación de JSON en python. Una buena fuente para fines prácticos es JSON_placeholder , proporciona un excelente paquete de requests de API que usaremos en nuestro ejemplo. Para empezar, sigue estos sencillos pasos. Abra Python IDE o CLI y cree un nuevo archivo de script, asígnele el nombre sample.py.
Python3
import requests import json # Now we have to request our JSON data through # the API package res = requests.get("https://jsonplaceholder.typicode.com / todos") var = json.loads(res.text) # To view your Json data, type var and hit enter var # Now our Goal is to find the User who have # maximum completed their task !! # i.e we would count the True value of a # User in completed key. # { # "userId": 1, # "id": 1, # "title": "Hey", # "completed": false, # we will count # this for a user. # } # Note that there are multiple users with # unique id, and their task have respective # Boolean Values. def find(todo): check = todo["completed"] max_var = todo["userId"] in users return check and max_var # To find the values. Value = list(filter(find, todos)) # To write these value to your disk with open("sample.json", "w") as data: Value = list(filter(keep, todos)) json.dump(Value, data, indent = 2)
Para saber más, Click Aquí
Publicación traducida automáticamente
Artículo escrito por kartikeya shukla 1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA