我有一个简单的脚本,试图从单个文件中提取多个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>
谢谢。
答案 0 :(得分:0)
我能够通过删除一个产生“ / 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语句再次进行编码,但是它很好地产生了字符串。