gpt4 book ai didi

python - json.loads() 中的无效\转义,python 2.7

转载 作者:太空宇宙 更新时间:2023-11-03 16:16:14 24 4
gpt4 key购买 nike

我在文本文件中有一个 json 列表,如下所示

[{"key1": "value1", "key2": "value2"},{},{}]

现在我正在尝试读取该文件并将其转换为字典列表,以便我可以使用代码迭代和使用这些键值对 -

with open('./file.txt') as f:
listOfDict= json.load(f)

我收到错误 -

ValueError: Invalid \escape: line 1 column 2005707 (char 2005706)

我认为这可能是因为有些值是这样的 -例如。 {“key1”:“ENERGIZER\xc2”}

我在写入此文件时忘记使用 text.encode("utf-8")。相反,我在写入文件时使用了 str(text)。

这就是导致此错误的原因吗?我该如何解决此问题。

最佳答案

好吧,您必须进行一些字符串操作才能转义和解码。

这取决于您的数据是否包含转义的 Unicode 或转义的 8 位字符集,例如 latin1cp1252。您必须进行试验,看看什么对您的数据有效。

如果它是转义的 Unicode,您可以简单地执行以下操作:

import io
with io.open('./file.txt', 'r', encoding='unicode_escape') as f:
listOfDict= json.load(f)

如果转义 8 位“latin1”,您需要执行以下操作:

with open('./file.txt', 'r') as f:
# read, convert escape to byte, convert bytes as 'latin1'
decoded_json = f.read().decode('string_escape').decode('latin1')
listOfDict = json.loads(decoded_json) # Note the "s".

关于python - json.loads() 中的无效\转义,python 2.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38931535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com