【发布时间】:2022-01-12 06:58:42
【问题描述】:
我有一个 json 文件,我想在不显示为 unicode 的情况下打开(读取和写入)它们:
json 文件如下:
{"A":"\u0e16"}
{"B":"\u0e39"}
{"C":"\u0e43\u0e08\u0e27"}
我尝试了下面的代码,但没有工作(仍然以编码的 unicode 打开):
with open("test.json",encoding='utf8') as in_data:
for line in in_data:
print(line)
预期输出:
{"A":"ณ"}
{"B":"คุ"}
{"C":"ของ"}
【问题讨论】:
-
您的输入文件未编码为 UTF-8。或许是这样,但
"\u0e16\"只是一组 9 个字符:"、\、u、0、e、1、6、\ 和 "。 -
我编辑了最后一个 \" 但我认为它仍然无法正常工作
-
@9769953 ASCII 是 UTF-8 的子集,因此所有 ASCII 文件都是有效的 UTF-8。
-
关于
print的警告。print可能不理解 Unicode(在 2021 年,它在 Windows 中很常见)。因此,您应该在开头添加一个print('{"A TEST":"ณ"}'),以确保您不会同时遇到两个问题(因此交互且难以调试)