La conversión de diccionario y json utiliza principalmente los siguientes métodos:
- cargas (): convertir datos json en datos dict
- dumps(): convertir datos dictados en datos json
Diccionario a datos json:
In [5]: import json
In [6]: dict = {'name':'mary','age':21}
In [7]: type(dict)
Out[7]: dict
In [8]: j = json.dumps(dict)
In [9]: j
Out[9]: '{"name": "mary", "age": 21}'
Cabe señalar aquí que si el diccionario contiene caracteres chinos al convertir a json, se producirán problemas de codificación , de la siguiente manera:
In [29]: staff = {'name':'权权','age':23,'sex':'女'}
In [30]: json.dumps(staff)
Out[30]: '{"name": "\\u6743\\u6743", "age": 23, "sex": "\\u5973"}'
Entonces, si hay chino, debemos agregar parámetros para el procesamiento:
In [31]: json.dumps(staff,ensure_ascii=False)
Out[31]: '{"name": "权权", "age": 23, "sex": "女"}'
原因
: Por lo general, cuando se solicita por correo, son datos json, pero si hay chino, hay un problema, porque el chino está codificado en Unicode, pero se analiza en ASCII de manera predeterminada. El chino no está en codificación ASCII, por lo que el chino no puede se mostrará.
Convertir datos json a diccionario:
In [25]: j
Out[25]: '{"name": "mary", "age": 21}'
In [26]: result = json.loads(j)
In [27]: result
Out[27]: {'name': 'mary', 'age': 21}
In [28]: type(result)
Out[28]: dict