Как декодировать файл msgpack в Python?

Я создал файл msgpack из кадра данных Pandas, используя следующий код:

df.to_msgpack('ixto.msg')

Я подтвердил, что файл сохранен в каталоге, но я не могу использовать библиотеку msgpack для python, поскольку следующий код:

unp = msgpack.unpackb('ixto.msg')

дает мне следующую ошибку:

AttributeError: 'str' object has no attribute 'read'

person Hugo    schedule 07.01.2016    source источник
comment
это опечатка? вам не хватает завершающей кавычки: unp = msgpack.unpackb('ixto.msg')   -  person EdChum    schedule 07.01.2016
comment
Да, это. сейчас правильно   -  person Hugo    schedule 07.01.2016
comment
См. также: Как читать и писать с помощью msgpack?   -  person Martin Thoma    schedule 16.05.2017


Ответы (1)


msgpack.unpackb ожидает байты (таким образом, «b»), содержащие закодированные данные, и вы даете ему имя файла, содержащего данные.

Итак, вам нужно сначала прочитать файл:

with open('ixto.msg', 'rb') as f:
    unp = msgpack.unpackb(f.read())
person kjaquier    schedule 07.01.2016