Код 'charmap' c не может декодировать байт 0x9d в позиции 4836: символы сопоставляются с <undefined> - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь выяснить эту ошибку, которая появляется из этого кода:

filename = os.path.join(os.path.expanduser("~"), "data", "blogs",
"1005545.male.25.Engineering.Sagittarius.xml")
#filename = open('C:/Users/spenc/data/blogs/1005545.male.25.Engineering.Sagittarius.xml',
#encoding='utf-8', errors = 'ignore')

all_posts = []
allPosts = []
with open(filename) as inf:
    postStart = False
    post = []
    for line in inf:
        line = line.strip()
        if line == "<post>":
            postStart = True
        elif line == "</post>":
            postStart = False
            allPosts.append("\n".join(post))
            post =[]
        elif postStart:
            post.append(line)
print(allPosts[0])
print(len(allPosts))
filename.close()

и получаю эту ошибку:

  File "D:\Anaconda-Python\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 4836: character maps to <undefined> here

Я просто пытаюсь выяснить кодировку ошибка, чтобы убедиться, что это работает при определении длины сообщений и печати самого сообщения, но он продолжает попадать в строку allposts.append. Не совсем уверен, что есть какая-то работа или есть новый способ сделать что-то в этом роде. Я пытался следовать учебнику по этому вопросу, но не могу продолжить в главе, пока это не будет решено.

...