python json字符串打印中文的问题(unicode)

  1. 做了一个小实验,代码如下:

    import json
    from pprint import pprint

    data = {

       '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打印了?

自学比较笨,还请不吝赐教。

阅读 6.9k
1 个回答

问题已经解决,参考了(https://segmentfault.com/a/1190000003821...),在json.dumps的时候指定了ensure_ascci=false,就可以了。
但是在json.loads()的时候中文还是不能显示,但是已经可以解决大部分问题了。

宣传栏