我有一个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":"ของ"}发布于 2021-12-07 07:34:29
该文件不是有效的JSON,而是所谓的"JSON行格式“,其中每一行都是有效的JSON。您还需要解码JSON行以正确显示它。json.loads()函数接受一个字符串并将其解码为JSON:
import json
with open("test.json",encoding='utf8') as in_data:
for line in in_data:
print(json.loads(line))输出:
{'A': 'ถ'}
{'B': 'ู'}
{'C': 'ใจว'}发布于 2021-12-07 07:41:26
在使用json文件时,必须在使用: first import json之前对它们进行解码:
with open("jason.json", encoding="utf-8") as in_data:
dict_from_json = json.load(in_data)
for k, v in dict_from_json.items():
print(k, v)此外,还可以将for循环放置在with open块之外。
您的json文件中也有一个错误,如果您想按原样解码它,应该这样写:
{"A":"\u0e16 ",
"B":"\u0e39",
"C":"\u0e43\u0e08\u0e27"}正如您在这里看到的,json文件必须是一个类似字典的对象或列表,您可以在文档中阅读更多有关它的信息。
发布于 2021-12-07 07:17:46
你打开了文件,但没看。要读取您必须添加的文件
lines=in_data.readlines()在这之后你可以写
for line in lines:
print(line)也是它的utf-8
https://stackoverflow.com/questions/70256140
复制相似问题