Как сериализовать объекты с помощью pickle в python3 - PullRequest
0 голосов
/ 12 июня 2018

Я читаю «Как думать, как учёный-компьютерщик. Учимся на Python».книга.Поэтому у меня обычно нет трудностей с интерпретацией примеров из python2 в python3, но в главе 11 «Файлы и исключения» я обнаружил этот фрагмент

>>> import pickle
>>> f = open("test.pck", "w")
>>> pickle.dump(12.3, f)
>>> pickle.dump([1,2,3], f)
>>> f.close() 

, который при оценке его с помощью Python 3.5.2 выдает эту ошибку

Traceback (most recent call last):  File "/(myDirs)/files.py", line 3, in <module>
    pickle.dump(3.14, f)
TypeError: write() argument must be str, not bytes

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

1 Ответ

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

Вам необходимо открыть файл в двоичном режиме.

В строке 2:

f = open("test.pck", "wb")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...