保存字典到JSON文件时如何保留挪威语ø等Unicode字符?
问题:JSON序列化时挪威语字符ø被转义为\u00f8怎么解决?
尝试保存字典到JSON文件时,字典里的挪威语字符ø在输出文件中被替换为\u00f8,示例代码及输出如下:
test.py:
import json my_dict=[{ 'organisasjonsnummer': '123456789', 'vedtektsfestetFormaal': ['Automasjonstjenester, service og leverandør av teknisk utstyr.'] }] with open("out.json", "w") as f: f.write( json.dumps(my_dict, indent=4) )
生成的out.json:
[ { "organisasjonsnummer": "123456789", "vedtektsfestetFormaal": [ "Automasjonstjenester, service og leverand\u00f8r av teknisk utstyr." ] } ]
解决方案
问题根源是json.dumps()的默认参数ensure_ascii为True,会自动将所有非ASCII字符转义为Unicode序列。要保留原字符,只需修改两个关键点:
- 将
ensure_ascii设为False,禁止自动转义非ASCII字符 - 打开文件时指定
encoding='utf-8',确保字符正确写入
修改后的代码:
import json my_dict=[{ 'organisasjonsnummer': '123456789', 'vedtektsfestetFormaal': ['Automasjonstjenester, service og leverandør av teknisk utstyr.'] }] with open("out.json", "w", encoding='utf-8') as f: f.write( json.dumps(my_dict, indent=4, ensure_ascii=False) )
此时生成的out.json会保留原挪威语字符:
[ { "organisasjonsnummer": "123456789", "vedtektsfestetFormaal": [ "Automasjonstjenester, service og leverandør av teknisk utstyr." ] } ]
内容的提问来源于stack exchange,提问作者Håvard
相关产品推荐
相关产品推荐

