【发布时间】:2020-09-26 03:22:35
【问题描述】:
我正在处理一个 JSON 文件,其中包含一些未知编码的字符串,如下例所示:
"L\u00c3\u00aa Nguy\u00e1\u00bb\u0085n Ph\u00c3\u00ba"
我已在Python 3.7 环境中使用json.load() 函数加载此文本,并尝试使用我在Internet 上找到的一些方法对其进行编码/解码,但我仍然无法获得预期的正确字符串。 (在这种情况下,它必须是Lê Nguyễn Phú)。
我的问题是,他们使用的编码方法是什么以及如何在 Python 中以正确的方式解析这些文本?
因为 JSON 文件来自我没有处理的外部源,所以我无法知道或在对文本进行编码的过程中进行任何更改。
[更新]更多详情:
JSON 文件如下所示:
{
"content":"L\u00c3\u00aa Nguy\u00e1\u00bb\u0085n Ph\u00c3\u00ba"
}
首先,我加载了 JSON 文件:
with open(json_path, 'r') as f:
data = json.load(f)
但是当我提取内容时,却不是我所期望的:
string = data.get('content', '')
print(string)
'Lê Nguyá»\x85n Phú'
【问题讨论】:
-
问题是原文件编码错误。
-
"L\u00c3\u00aa Nguy\u00e1\u00bb\u0085n Ph\u00c3\u00ba" 包含 unicode 字符...但它们不是您期望的 unicode 字符...
-
"并尝试使用我在 Internet 上找到的一些方法对其进行编码/解码" 请显示您实际尝试过的事情的实际代码。另外,文件是从哪里来的?我们能看到文件相关部分的十六进制转储吗? “下面的示例”是否反映了当您在文本编辑器中打开文件时它在文件中的外观,或者它反映了它在您
json.load()并显示字符串后的外观? -
@KarlKnechtel 很抱歉,因为我没有清楚地告诉你我有什么问题。所以,我刚刚更新了我的帖子!因为这是我在 StackOverFlow 中的第一个问题,所以如果您发现我的帖子或答案有任何问题,请告诉我。我非常感谢你的建议。谢谢!
标签: python json python-3.x string unicode