Python如何在json.dumps输出时保留Unicode字符不转为转义序列
解决方法
json.dumps()默认开启ensure_ascii参数,会自动将所有非ASCII字符转义为\u开头的编码序列,你只需要调整两个配置即可保留原始Unicode字符:
- 给
json.dumps()添加ensure_ascii=False参数,关闭非ASCII字符自动转义 - 打开文件时显式指定编码为
utf-8,避免不同系统默认编码不一致导致写入乱码
修正后的代码如下:
# 写法1:保持原有的write逻辑,仅补充参数 with open(TEXT_JSON, 'w', encoding='utf-8') as f: f.write(json.dumps(bible_text, sort_keys=True, indent=2, ensure_ascii=False)) # 写法2:直接用json.dump写入文件对象,写法更简洁 with open(TEXT_JSON, 'w', encoding='utf-8') as f: json.dump(bible_text, f, sort_keys=True, indent=2, ensure_ascii=False)
注意事项
- 调整后输出的JSON会直接保留原始希伯来语等Unicode字符,可读性符合要求
- 后续读取该JSON文件时,也需要指定
encoding='utf-8'读取,避免出现乱码
内容的提问来源于stack exchange,提问作者etayluz
相关产品推荐
相关产品推荐

