-
做了一个小实验,代码如下:
import json
from pprint import pprintdata = {
'name' : 'ACME', 'shares' : 100, 'pptv' : [ {'pname':'中文', 'score' : 100}, {'pname' : '中文', 'score' : 200} ], 'price' : 542.23
}
json_str = json.dumps(data)
print(json_str)
输出如下:
{"price": 542.23, "pptv": [{"score": 100, "pname": "\u4e2d\u6587"}, {"score": 200, "pname": "\u4e2d\u6587"}], "name": "ACME", "shares": 100}
问题描述:
我将上述输出的json再次loads之后,转化成字典,print出来还是这样,”中文“还是没有被打印出来,但是通过字典把值取出来之后不做处理,直接print出来就是"中文"sys.getfilesystemencoding()是utf-8
疑惑:
1.有没有将json内容直接打印后显示出中文而不是unicode字符串(“\u4e2d”应该就是unicode字符串吧)
2.如果1这个问题没有方法实现,是不是只能json转化成dict,然后遍历,encode打印了?
自学比较笨,还请不吝赐教。
问题已经解决,参考了(https://segmentfault.com/a/1190000003821...),在json.dumps的时候指定了ensure_ascci=false,就可以了。
但是在json.loads()的时候中文还是不能显示,但是已经可以解决大部分问题了。