我是Python新手,遇到了关于Unicode文本内容和JSON字段的问题
我的目标是读取一些包含Unicode字符的文本文件,提取全部内容并将其放入JSON字段中。但是,JSON字段将包含编码(UTF-8)而不是原始Unicode字符(例如:JSON将包含\u00e8\u0107而不是èć)。如何将整个文本文件内容导入JSON字段
这是我的代码:
import json
file_1 = open('utf8_1.txt', 'r', encoding='utf-8').read()
file_2 = open('utf8_2.txt', 'r', encoding='utf-8').read()
with open("test.json", "r") as jsonFile:
data = json.load(jsonFile)
data[0]['field_1'] = file_1
data[0]['field_2'] = file_2
with open("test.json", "w") as jsonFile:
json.dump(data, jsonFile)
以下是两个具有Unicode字符的文件:
utf8\u 1.txt:
Kèććia
ivò
utf8_2.txt:
ććiùri
iχa
下面是test.json(注意:两个字段设置为空,需要使用文件内容更新)
[
{
"field_1": "",
"field_2": ""
}
]
下面是我从运行上述代码中得到的test.json:
[
{
"field_1": "K\u00e8\u0107\u0107ia\niv\u00f2",
"field_2": "\u0107\u0107i\u00f9ri\ni\u03c7a"
}
]
但是我对test.json的预期输出如下所示:
[
{
"field_1": "Kèććia ivò",
"field_2": "ććiùri iχa"
}
]
我的目标是将utf8_1.txt中的任何内容放入字段_1中,并将utf8_2.txt中的任何内容放入test.json中的字段_2。最好是字符串值。我已经坚持了很长时间了<我真的很感谢你的帮助
您得到的是有效的UTF-8 JSON。它只是使用非ASCII字符的转义码编写为纯ASCII,作为UTF-8的子集,它也是有效的UTF-8。用
json.load
读回它,它将是原始字符串。如果要在写入文件时将实际Unicode字符编码为UTF-8而不是转义码,请使用json.dump
和ensure_ascii=False
参数,并确保使用encoding='utf8'
打开文件:这是在documentation中:
相关问题 更多 >
编程相关推荐