我们在Linux和Windows上发现json.dumps
的不同行为
jsonData = json.load(open('test.json'))
print(jsonData)
jsonStr = json.dumps(jsonData, ensure_ascii=False)
print(jsonStr)
Linux上的输出:(python3.3)
{'name': 'Müller'}
{"name": "Müller"}
Windows上的输出:(python3.4)
{'name': 'Müller'}
{"name": "M\xc3\xbcller"}
我们错过了什么吗? test.json
看起来像{'name': 'Müller'}
。
如何在Windows上使用Python 3读取UTF-8文件?
答案 0 :(得分:3)
打开文件时不要依赖默认编码;您的JSON文件被编码为UTF-8,但您使用单字节编解码器打开它(可能是CP1252,Windows Latin-1代码页):
jsonData = json.load(open('test.json', encoding='utf8'))
来自open()
function documentation:
默认编码为平台相关(无论
locale.getpreferredencoding()
返回)
强调我的。