【Json】json.dumps和 json.loads 区别及ensure_ascii中文显示

  • json.dumps():dict转成str
  • json.loads():str转成dict

也就是说,一个是将字典转换为字符串,一个是将字符串转换为字典

import json  
  
TestTarget = {1:'A', 2:2, "jimy":"666",'tom':888}  
  
# test json.dumps  
  
print type(TestTarget), TestTarget  
json_str = json.dumps(TestTarget)  
print "json.dumps(TestTarget) return:"  
print type(json_str), json_str  
  
# test json.loads  
print "json.loads(str) return"  
json_dict = json.loads(json_str)  
print type(json_dict), json_dict

 结果:

<type 'dict'> {1: 'A', 2: 2, 'jimy': '666', 'tom': 888}
json.dumps(TestTarget) return:
<type 'str'> {"1": "A", "2": 2, "jimy": "666", "tom": 888}
json.loads(str) return
<type 'dict'> {u'1': u'A', u'2': 2, u'jimy': u'666', u'tom': 888}

 

***关于json中文编码

在使用json.dumps时要注意一个问题:

>>> import json
>>> print json.dumps('中国')
"\u4e2d\u56fd"

输出的会是
'中国' 中的ascii 字符码,而不是真正的中文。

这是因为json.dumps 序列化时对中文默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False:

 

>>> import json
>>> print json.dumps('中国')
"\u4e2d\u56fd"
>>> print json.dumps('中国',ensure_ascii=False)
"中国"
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值