UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xef в позиции 104: порядковый номер не в диапазоне (128) - PullRequest
0 голосов
/ 30 июня 2018

У меня проблема с моим кодом, поэтому я хочу напечатать мой csv-файл на консоли, и он выглядит так:

| ID  |   Tweet                                         |Prediction | System|   
|-----+-------------------------------------------------+-----------+-------|
| 01  |I had seen a movie "Rugrats" thats so funny�    | Positif   |Positif| 
| 02  |Incredibles 2 was amazingly amazing �           | Positif   |Positif|

Я использовал табличные данные для составления таблицы, поэтому это мой код:

from tabulate import tabulate    
with open("file.csv","rb") as data:
                x = csv.reader(data)
                docs = []
                for i in x:
                    docs.append(i)
                    print tabulate([i], headers=['ID', 'Tweet', 'Prediction', 'System'])

Я думаю, что проблема в ascii , но я использовал i.decode('utf-8','ignore'), и это не работает. поэтому мое ожидание в консоли вывода выглядит следующим образом:

| ID  |   Tweet                                         |Prediction | System|   
|-----+-------------------------------------------------+-----------+-------|
| 01  |I had seen a movie "Rugrats" thats so funny      | Positif   |Positif| 
| 02  |Incredibles 2 was amazingly amazing              | Positif   |Positif|

Как я могу это сделать?

1 Ответ

0 голосов
/ 30 июня 2018

не могли бы вы попробовать:

with codecs.open( "file.csv", 'rb', encoding='utf-8' ) as data :

в противном случае просто отфильтруйте все символы из ваших данных, это не ASCII:

data = [i for i in data if ord(i) < 128]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...