У меня есть список со строками двоичного типа, который выглядит следующим образом, который получается при чтении текстового файла в режиме rb
(поскольку r
не работает для чтения файла из-за вероятного перепутывания символов из разных кодировок): -
new_list = [b'Vanessa Skarski\'s Account of Her Father\'s Death....', b'Hornslet wind-turbine collapse\r\nFrom Wikipedia' .....]
и т. д.
Всего в списке 271
элементов. Но я хочу, чтобы элементы списка были обычными строками, а не двоичными. Я изучил использование new_list = [item.decode(encoding='utf-8') for item in new_list]
но это дает UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 643: invalid start byte
. Я просто хочу избавиться от b и получить нормальные строки. Любые идеи, пожалуйста?
EDIT Решение, упомянутое в разделе Преобразовать байты в строку? не решил проблему, как я уже упоминал в своем первоначальном сообщении. Моя версия Python указана ниже, если она вообще имеет какое-либо отношение к ошибке.
3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
latin1
будет работать ВСЕГДА (т. е. никогда не выдаст ошибку), но может не дать вам значимого результата, например.'24 °C'.encode('utf8').decode('latin1')
даст вам:'24 °C'
. Поэтому обязательно проверьте свои результаты. 19.07.2019try
-catch
. Потом я посмотрел, какие из них работают лучше всего. Не уверен, что это считается хорошим подходом, но у меня сработало. 19.07.2019