python json保留汉字原始形式,而不是Unicode编码(Unicode码)(加ensure_ascii=False参数)

文章目录

    • 问题
    • 解决办法
    • 测试

问题

如图,保存汉字的时候变成unicode码了。。。

python json保留汉字原始形式,而不是Unicode编码(Unicode码)(加ensure_ascii=False参数)_第1张图片

代码是这样的:

python json保留汉字原始形式,而不是Unicode编码(Unicode码)(加ensure_ascii=False参数)_第2张图片

解决办法

在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,可以保留汉字原始形式了:

python json保留汉字原始形式,而不是Unicode编码(Unicode码)(加ensure_ascii=False参数)_第3张图片

你可能感兴趣的:(Python,python,json,数据库)