python字典与json之间的转化

字典与json转化主要用到以下方法:

  • loads():将json数据转化成dict数据
  • dumps():将dict数据转化成json数据

字典转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}'

这里需要注意的是,如果字典转json时包含汉字,就会出现编码问题,如下:

In [29]: staff = {'name':'权权','age':23,'sex':'女'}                                                                                                                                                                                                                          

In [30]: json.dumps(staff)                                                                                                                                                                                                                                                    
Out[30]: '{"name": "\\u6743\\u6743", "age": 23, "sex": "\\u5973"}'

所以如果有中文,我们需要加参数处理:

In [31]: json.dumps(staff,ensure_ascii=False)                                                                                                                                                                                                                                 
Out[31]: '{"name": "权权", "age": 23, "sex": "女"}'

原因:通常用post方式请求时是json数据,但如果有中文则显示有问题,因为中文用 unicode 编码,而默认却是用ASCII解析的,中文不在ASCII编码中,所以不能显示中文。

json数据转字典:

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

猜你喜欢

转载自blog.csdn.net/quanqxj/article/details/89226160