【发布时间】:2020-10-14 11:45:24
【问题描述】:
我有一个包含 77 个项目的列表。我已将所有 77 个项目放在一个文本文件中(每行一个)。
我正在尝试将其读入我的 python 脚本(然后我会将列表中的每个项目与通过 API 提取的另一个列表进行比较)。
问题:由于某种原因,列表中 2/77 的项目具有编码,给我“u00c2”和“u00a2”字符,这意味着它们没有正确比较并且被遗漏。我不知道为什么这些 2/77 有这种编码,但其他 75 很好,我不知道如何在 python 中摆脱编码。
问题:
- 在 Python 中,如何摆脱编码以确保它们都没有任何特殊/奇怪的字符并且只是纯文本?
- 在读取文件时,我可以使用什么方法来执行此操作?
这是我将文本文件读入 python 的方式:
with open("name_list2.txt", "r") as myfile:
policy_match_list = myfile.readlines()
policy_match_list = [x.strip() for x in policy_match_list]
注意 - “policy_match_list”是从文本文件中读取的 77 个策略的列表。
这是我比较两个列表的方式:
for policy_name in policy_match_list:
for us_policy in us_policies:
if policy_name == us_policy["name"]:
print(f"Match #{match} | {policy_name}")
match += 1
注意 - “us_policies”是另一个包含数千个策略的列表,通过我正在比较的 API 提取
这导致 75/77 的预期匹配,因为其他 2 个策略比较,例如“text12 - text”到“text12u00c2-u00a2text”而不是“text12 - text”到“text12 - text”
我希望这是有道理的,如果我可以添加更多信息,请告诉我
干杯!
【问题讨论】:
-
您是否尝试过解码从文件中读取的所有行?
-
请您提供一些示例代码吗?我试过这个,但它最终删除了大约 30 个项目,我也不明白为什么或如何!
-
如果可以,请将文件上传到我们可以复制问题的地方以尝试解决它
-
由于数据的敏感性,我无法上传文件,但它实际上是一个纯文本文件,我已将 77 个项目从 excel(所有单元格文本格式)复制并粘贴到空文本文件。
-
我刚刚又完全复制了一遍(Excel -> 记事本 -> 新的纯文本文件),它已经解决了这个问题。我不知道为什么会发生这种情况,以及为什么第一次就坏了,但是感谢您对此进行调查