Python 3.x ';charmap';编解码器可以';t对XX位置的字符进行编码

Python 3.x ';charmap';编解码器可以';t对XX位置的字符进行编码,python-3.x,Python 3.x,我有一个简单的脚本,它试图从一个文件中提取多个json对象,并将其存储为列表: import json URL = r"C:\Users\Kenneth\Youtube_comment_parser\Testing.txt" with open(URL, 'r', encoding="utf-8") as handle: json_data = [json.loads(line) for line in handle] print(json_data) # Can't .encod

我有一个简单的脚本,它试图从一个文件中提取多个json对象,并将其存储为列表:

import json

URL = r"C:\Users\Kenneth\Youtube_comment_parser\Testing.txt"

with open(URL, 'r', encoding="utf-8") as handle:
    json_data = [json.loads(line) for line in handle]

print(json_data) # Can't .encode() because it's a list
即使指定了utf-8编码,我仍然会遇到编解码器错误。如果可能的话,我也想把这个对象改成字典,但这是我所能做到的

确切的错误是:

UnicodeEncodeError: 'charmap' codec can't encode characters in position
394-395: character maps to <undefined>
UnicodeEncodeError:“charmap”编解码器无法对位置中的字符进行编码
394-395:字符映射到

提前感谢。

我可以通过删除一个产生“/undefined>”的unicode字符,字符串“\ufeff”,解决这个问题,然后其余的字符可以很好地显示出来。这需要我迭代字典列表中的键,并根据需要进行替换

import json

URL = r"C:\Users\Kenneth\Youtube_comment_parser\Testing.txt"

json1_file = open(URL, encoding='utf-8')
json1_str = json1_file.read()
json1_str = [d.strip() for d in json1_str.splitlines()]
json1_data = [json.loads(i) for i in json1_str]

json1_data = [{key:value.replace(u'\ufeff', '') for
              key, value in json1_data[index].items()} for
              index in range(len(json1_data))]

print(json1_data[1]['text'].encode('utf-8')) 
仍然不确定为什么我必须用utf-8打开,然后用我的print语句再次编码,但它很好地生成了字符串