python中json.loads()为什么都变成unicode了?加了encoding='utf-8'也没用。我希望得到utf8的k-v,怎么做 20

见最后一行的print,我希望得到utf8的k-v,怎么做?#coding=utf-8importjsond={'name':'测试','age':20}printd#打... 见最后一行的print,我希望得到utf8的k-v,怎么做?

#coding=utf-8
import json
d = {
'name':'测试',
'age':20
}
print d # 打印{'age': 20, 'name': '\xe6\xb5\x8b\xe8\xaf\x95'}
j_str = json.dumps(d,ensure_ascii=False)
print j_str #打印{"age": 20, "name": "测试"}
dd = json.loads(j_str, encoding='utf-8')
print dd #打印{u'age': 20, u'name': u'\u6d4b\u8bd5'}
展开
 我来答
era_misa
2016-05-29 · TA获得超过205个赞
知道答主
回答量:75
采纳率:0%
帮助的人:30.1万
展开全部

json里面的字符串都是unicode(见http://json.org/),所以在dd中不可能出现utf-8的kv。loads函数的参数encoding是指定字符串j_str的编码。将字符串j_str读到dd时,会按这个编码进行解码成unicode。

dd = json.loads(j_str, encoding='utf-8') #dd中的字符串都是unicode
WuJiaweixc21
2018-03-31 · TA获得超过1842个赞
知道小有建树答主
回答量:5
采纳率:66%
帮助的人:634
展开全部
  1. 录入:usage: raise [Exception [, args [, trackback]]]

    上面是Python的raise的用法,下面是自己用这个方法实现异常的抛出方法
  2. 命令行传入的host即ip地址是list形式,想要通过list转为str的格式之后来进行socket.connect

  3. 出发的动机是因为自己写的小程序要通过命令行的形式传参并执行命令.

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
waketzheng
2018-02-26 · TA获得超过644个赞
知道小有建树答主
回答量:566
采纳率:63%
帮助的人:147万
展开全部
用python3就很简单,哈哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友81c9a15
2017-08-23
知道答主
回答量:20
采纳率:0%
帮助的人:3.7万
展开全部
目前,个人测试,python3就可以得到utf-8格式的了,用python2就不知道如何解决了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式