{"one":{"two":"中文"}}
想要分层次的查看,于是:
cat test.json | python3 -m json.tool
然后输出为:
{"one": {"two": "\u4e2d\u6587"
}
}
然而中文已经转换成了unicode编码,如何避免这种转换?
必须转!
json是用于交换数据的,Unicode等 多字节字符 会在传输过程中出错。
"\u4e2d\u6587" ,严格的说,这不是utf格式编码,而是 unicode转义。
更新
用repr()保存json对象
>>>import json>>>j = json.loads('{"one":{"two":"中文"}}')>>>print(j)
{'one': {'two': '中文'}}>>>j['one']['two']'中文'>>>d =json.dumps(j)>>>print(d)
{"one": {"two": "\u4e2d\u6587"}}>>>r = repr(j)>>>print(r)
{'one': {'two': '中文'}}>>>with open('test.json','w') as w:
w.write(r)