English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JSON (Java Script Object Notation) es un formato de intercambio de datos ligero y reconocido. Usando la técnica de formateo JSON en Python, podemos convertir cadenas de JSON en objetos Python, y también objetos Python en cadenas de JSON.
Para usar estas funciones, necesitamos usar el módulo json de Python. El módulo json se adjunta al módulo estándar de Python. Por lo tanto, primero debemos importarlo.
import json
En el módulo json, hay algunos métodos, como dump() y dumps(), que pueden convertir objetos Python en cadenas de JSON. El método dump() tiene dos parámetros, el primero es el objeto y el segundo es el objeto de archivo. Este método convierte el objeto en formato JSONflujosecuencializar a un objeto de archivo. Del mismo modo, el método dumps() solo acepta un parámetro. El parámetro es el objeto. Convierte el objeto en JSONCadena.
import json from io import StringIO str_io_obj = StringIO() #Usar JSON Dump para hacer StringIO json.dump(["India", "Australia", "Brazil"], str_io_obj) print('Objecto StringIO valor: ') + str(str_io_obj.getvalue()) my_json = { "name" : "Kalyan", "age" : 25, "city" : "Delhi" } print(json.dumps(my_json, indent=4))
Resultado de salida
Objecto StringIO valor: ["India", "Australia", "Brazil"] { "name": "Kalyan", "age": 25, "city": "Delhi" }
En este caso, deserializaremos una cadena de JSON. Hay dos métodos diferentes. Son load() y load(). Ambos métodos toman como parámetro un archivo JSON. load() convierte datos de un objeto de archivo en un objeto Python, mientras que load() convierte datos de tipo cadena.
import json from io import StringIO str_io_obj = StringIO('["xyz", "abc", "xyz", "pqr"]') #Cargar desde StringIO print('Cargar: ' + str(json.load(str_io_obj))) print('Cadena a Json: ' + str(json.loads('{"xyz" : 1, "abc" : 2, "xyz" : 3, "pqr" : 4}
Resultado de salida
Cargar: ['xyz', 'abc', 'xyz', 'pqr'] Cadena a Json: {'xyz': 3, 'abc': 2, 'pqr': 4}
La clase JSONEncoder se utiliza para convertir objetos Python a formato JSON. En este ejemplo, veremos cómo se utiliza JSONEncoder para convertir objetos complejos a objetos de tipo JSON.
import json class Comp_Encoder(json.JSONEncoder): def default(self, comp_obj): if isinstance(comp_obj, complex): return [comp_obj.real, comp_obj.imag] return json.JSONEncoder.default(self, comp_obj) print(json.dumps(5+8j, cls=Comp_Encoder))
Resultado de salida
[5.0, 8.0]
La clase JSONDecoder realiza la operación inversa.
import json my_str = '{"Asim" : 25, "Priyesh" : 23, "Asim" : "28"' #Decodificar JSON utilizando el JSONDecoder print(json.JSONDecoder().decode(my_str)) print(json.JSONDecoder().raw_decode(my_str))
Resultado de salida
{'Asim': '28','Priyesh': 23} ({'Asim': '28','Priyesh': 23}, 44)