Я пытаюсь сохранить массив объектов Tweet в файле. Чистые экземпляры классов содержат символы кодировки utf8. вы можете увидеть код ниже:"UnicodeDecodeError: кодек charmap не может декодировать" ошибку при загрузке pickle
class Tweet:
author='';
text='';
time='';
date='';
timestamp='';
with open('tweets.dat','wb') as f:
pickle.dump(all_tweets,f)
with open('tweets.dat') as f:
all_tweets = pickle.load(f)
Когда я запускаю код, он возвращает исключение на pickle.load (F) линия о том, что:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 25: character maps to <undefined>
Моя машина спецификации:
Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
Почему вы пишете в файл в двоичном режиме и читать из него в текстовом режиме? –
Я хочу получить мои объекты, а затем использовать их. Хотя я упомянул здесь простой случай, класс Tweet также может содержать нетекстовые атрибуты. – CoderInNetwork
Вы заменяете весь файл 'DAT' на запись, но хотите использовать его с внешней системой кодирования/декодирования. Вы помните, «какое декодирование используется при создании этого файла?» , Большинство ответов «Не знаю!» , cos, где 'os_encoding',' python encode', 'python decode' шаблоны? – dsgdfg