Python JSON

En este capítulo, presentaremos cómo usar el lenguaje Python para codificar y decodificar objetos JSON.

JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos, fácil de leer y escribir para las personas.


Funciones JSON

Para usar las funciones JSON, es necesario importar la librería json:import json。

FunciónDescripción
json.dumps Codificar objetos de Python en cadenas JSON
json.loadsDecodificar cadenas JSON codificadas en objetos de Python

json.dumps

json.dumps se utiliza para codificar objetos de Python en cadenas JSON.

Sintaxis

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

Ejemplo

El siguiente ejemplo codifica una matriz como datos en formato JSON:

Ejemplo

#!/usr/bin/python
import json

data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

data2 = json.dumps(data)
print(data2)

El resultado de ejecutar el código anterior es:

[{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]

Usar parámetros para formatear la salida de datos JSON:

Ejemplo

#!/usr/bin/python
import json

data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

data2 = json.dumps({'a': 'Ejemplo', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
print(data2)

El resultado de ejecutar el código anterior es:

{
    "a": "Ejemplo",
    "b": 7
}

Tabla de conversión de tipos primitivos de Python a tipos JSON:

Python JSON
dict object
list, tuple array
str, unicode string
int, long, float number
True true
False false
None null

json.loads

json.loads se utiliza para decodificar datos JSON. Esta función devuelve el tipo de datos de Python.

Sintaxis

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

Ejemplo

El siguiente ejemplo muestra cómo Python decodifica objetos JSON:

Ejemplo

#!/usr/bin/python
import json

jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

text = json.loads(jsonData)
print(text)

El resultado de ejecutar el código anterior es:

{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}

Tabla de conversión de tipos JSON a tipos Python:

JSON Python
object dict
array list
string unicode
number (int) int, long
number (real) float
true True
false False
null None

Para más información, consulte:https://docs.python.org/2/library/json.html。


Usando la biblioteca de terceros: Demjson

Demjson es una biblioteca de módulos de terceros de Python, que se puede usar para codificar y decodificar datos JSON, e incluye funciones de formato y validación de JSONLint.

Dirección de Github:https://github.com/dmeranda/demjson

Dirección oficial:http://deron.meranda.us/python/demjson/

Configuración del entorno

Antes de usar Demjson para codificar o decodificar datos JSON, debemos instalar primero el módulo Demjson. En este tutorial descargaremosDemjsone instalaremos:

$ tar -xvzf demjson-2.2.3.tar.gz
$ cd demjson-2.2.3
$ python setup.py install

Para más información sobre la instalación, consulte:http://deron.meranda.us/python/demjson/install

Funciones JSON

FunciónDescripción
encode Codificar objetos de Python en cadenas JSON
decodeDecodificar cadenas JSON codificadas en objetos de Python

encode

La función encode() de Python se utiliza para codificar objetos de Python en cadenas JSON.

Sintaxis

demjson.encode(self, obj, nest_level=0)

Ejemplo

El siguiente ejemplo codifica una matriz como datos en formato JSON:

Ejemplo

#!/usr/bin/python
import demjson

data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

json = demjson.encode(data)
print(json)

El resultado de ejecutar el código anterior es:

[{"a":1,"b":2,"c":3,"d":4,"e":5}]

decode

Python puede usar la función demjson.decode() para decodificar datos JSON. Esta función devuelve el tipo de datos de Python.

Sintaxis

demjson.decode(self, txt)

Ejemplo

El siguiente ejemplo muestra cómo Python decodifica objetos JSON:

Ejemplo

#!/usr/bin/python
import demjson

json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

text = demjson.decode(json)
print(text)

El resultado de ejecutar el código anterior es:

{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
Otras extensiones