gpt4 book ai didi

python - 使用带有错误 ='replace' 的 str.decode 仍然会出现错误

转载 作者:太空宇宙 更新时间:2023-11-03 20:13:31 25 4
gpt4 key购买 nike

我正在尝试替换数百个 JSON 文件中的一些文本 ('id' -> 'doc_id')。这些文件包含从互联网上抓取的文本,文本编码应该是 utf-8,但可能并非总是如此。我尝试以二进制方式读取文件,然后解码为 utf-8,然后替换文本,然后写入文件。编码部分有错误='替换'但我仍然收到错误!有趣的是,如果我多次运行该程序,它就会卡在不同的文件上。

为什么即使使用“替换”也会出现错误?

这是代码:

import os

folder = 'C:\\some\\path'

for file in os.listdir(folder):
if file.endswith('.json'):
print('Processing: ', file)
f = open(file, 'rb')
binary_text = f.read()
f.close()
decoded_text = binary_text.decode(encoding='UTF-8', errors='replace')
replaced_text = decoded_text.replace('"id":', '"doc_id":')
f = open(file, 'w')
f.write(replaced_text)
f.close()

print('Done!')

这是我得到的示例错误之一:

Traceback (most recent call last):
File "C:\some\path\id_to_docid.py", line 13, in <module>
binary_text = f.read()
File "C:\Program Files\Python36\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 7423: character maps to <undefined>

最佳答案

好的,我好像找到问题了。后者f = open(文件, 'w')也应该是f = open(文件, 'w', 编码='UTF-8', 错误='替换')现在一切都进展顺利。我猜这是一个菜鸟错误......

关于python - 使用带有错误 ='replace' 的 str.decode 仍然会出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58593795/

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