TypeError: требуется байтоподобный объект, а не 'str' при чтении из файла - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь использовать набор данных из файла для реализации моего проекта в ML

authors_file_handler = open(authors_file, "r")
authors = pickle.load(authors_file_handler)
authors_file_handler.close()

После этого я получаю сообщение об ошибке в этой строке

авторы = pickle.load (hors_file_handler)

TypeError: a bytes-like object is required, not 'str'

1 Ответ

0 голосов
/ 08 сентября 2018

Вам нужно открыть файл в режиме двоичного чтения:

authors_file_handler = open(authors_file, "rb") # Note the added 'b'
authors = pickle.load(authors_file_handler)
authors_file_handler.close()

Из pickle.load() документов :

Файл аргументов должен иметь два метода, метод read (), который принимает целочисленный аргумент и метод readline (), который не требует аргументов. Оба метода должны возвращать байты. Таким образом, файл может быть файлом на диске открыт для двоичного чтения , объекта io.BytesIO или любого другого объект, который соответствует этому интерфейсу.

...