解决python3 json数据包含中文的读写问题
原创解决Python3 JSON数据包含中文的读写问题
在Python3中处理包含中文的JSON数据读写时,我们也许会遇到编码问题。这是归因于默认情况下,Python的json模块使用ASCII编码来读写JSON数据,而中文字符串并不是ASCII编码的一部分。为了正确地读写包含中文的JSON数据,我们需要确保在编码和解码过程中使用正确的编码格式,通常是UTF-8。
写入JSON数据
当我们将包含中文的字典写入JSON文件时,需要设置ensure_ascii=False
参数来允许非ASCII字符的输出。
import json
# 准备包含中文的数据
data = {
"name": "张三",
"age": 30,
"city": "北京"
}
# 写入JSON数据,确保非ASCII字符正常编码
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False)
上面的代码中,我们打开文件时指定了UTF-8编码,并在调用json.dump
时禁用了ASCII编码的强制转换,从而确保中文字符能被正确写入文件。
读取JSON数据
读取包含中文的JSON数据时,也需要确保文件读取时使用正确的编码。下面是怎样使用Python读取上面创建的JSON文件:
import json
# 读取JSON数据
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
print(data)
# 输出:{'name': '张三', 'age': 30, 'city': '北京'}
同样地,打开文件时我们使用了UTF-8编码,这样中文字符就可以被正确地解析。
总结
在Python3中处理含有中文的JSON数据时,只需注意以下两点:
- 写入文件时,使用
ensure_ascii=False
和UTF-8编码; - 读取文件时,确保使用UTF-8编码来打开文件。
按照上述步骤,我们就可以避免在读写JSON数据时遇到中文编码问题。