python 代码打开(编码='utf8')不工作

python code open(encoding='utf8') is not working

我有一个 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":"ของ"}

只有一个小错误,您必须使用 encoding='utf-8'

而不是 encoding='utf8'

希望它能解决问题。

您打开了文件但没有阅读。 要阅读文件,您必须添加

lines=in_data.readlines()

之后你可以写

for line in lines:
    print(line)

还有它的 utf-8

该文件无效 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': 'ใจว'}

在处理 json 文件时,您必须在使用前对其进行解码: 第一个 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 文件必须是类似字典的对象或列表,您可以在文档中阅读更多相关信息