文章目录
- 问题
- 解决办法
- 测试
问题
如图,保存汉字的时候变成unicode码了。。。
代码是这样的:
解决办法
在Python中,可以使用json
模块的ensure_ascii
参数来控制是否将汉字转换为类似\u5730\u9707
的Unicode编码。默认情况下,ensure_ascii
参数为True
,会将汉字转换为Unicode编码。如果想要保留汉字的原始形式,可以将ensure_ascii
参数设置为False
。
下面是一个示例代码:
import json
data = {
"地点": "北京",
"事件": "地震"
}
# 将汉字转换为Unicode编码
json_data = json.dumps(data, ensure_ascii=True)
print(json_data)
# 保留汉字的原始形式
json_data = json.dumps(data, ensure_ascii=False)
print(json_data)
输出结果:
{"地点": "\u5317\u4eac", "事件": "\u5730\u9707"}
{"地点": "北京", "事件": "地震"}
可以看到,当ensure_ascii
参数为True
时,汉字被转换为Unicode编码;当ensure_ascii
参数为False
时,汉字保留了原始形式。
如果不是输出json字符串,而是直接存储到文件中,可以用json.dump()
:
import json
data = {
"地点": "北京",
"事件": "地震"
}
# 将数据保存到JSON文件中,并将汉字转换为Unicode编码
with open("data.json", "w", encoding="utf-8") as file:
json.dump(data, file, ensure_ascii=True)
# 将数据保存到JSON文件中,保留汉字的原始形式
with open("data.json", "w", encoding="utf-8") as file:
json.dump(data, file, ensure_ascii=False)
这段代码将数据保存到名为data.json的JSON文件中。根据ensure_ascii参数的值,汉字会被转换为Unicode编码或保留原始形式。
测试
加了ensure_ascii=False
,可以保留汉字原始形式了: