2016-04-16 2 views
-1

К примеру, я уже знаю двоичные данные:Как перевести известные двоичные данные в объект в Python?

"b'\x80\x03}q\x00(X\x03\x00\x00\x00ageq\x01K\x14X\x05\x00\x00\x00scoreq\x02KXX\x04\x00\x00\x00nameq\x03X\x03\x00\x00\x00Bobq\x04u.'" 

Это является объектом ДИКТ.

Как я могу перевести его в объект dict? Я могу только найти способ чтения файлов в объект, но я не могу найти способ перевести существующие данные в объект.

ответ

5

Вы можете преобразовать двоичные данные в объект питона с помощью pickle module:

>>> bs = b'\x80\x03}q\x00(X\x03\x00\x00\x00ageq\x01K\x14X\x05\x00\x00\x00scoreq\x02KXX\x04\x00\x00\x00nameq\x03X\x03\x00\x00\x00Bobq\x04u.' 
>>> import pickle 
>>> loaded = pickle.loads(bs) 
>>> loaded 
{'score': 88, 'age': 20, 'name': 'Bob'} 

Обратите внимание, что это будет работать только на объекты, которые были сериализовать с помощью инструментов в модуле рассол - pickle.dump или pickle.dumps. Модуль рассола не может десериализовать произвольные двоичные данные.

Кроме того, вы должны рассыпать объекты только из надежного источника, так как рассыпание объекта может привести к выполнению кода.

+0

Спасибо! Мне нужно многому учиться! –

Смежные вопросы