вывод пакета Python в формате строки - PullRequest
2 голосов
/ 26 марта 2011

Я сделал следующее.

from struct import pack, unpack
t = 1234
tt = str(pack("<I", t))

печать тт дает \xf3\xe0\x01\x00. Как я могу получить исходное значение t от tt?

Я попытался распаковать repr(tt), но это не сработало. Как мне это сделать?

Ответы [ 3 ]

7 голосов
/ 26 марта 2011
>>> t=1234
>>> tt=pack('<I', t)
>>> tt
'\xd2\x04\x00\x00'
>>> unpack('<I', tt)
(1234,)

>>> ttt, = unpack('<I', tt) 
>>> ttt
1234
1 голос
/ 26 марта 2011

unpack('<I', tt) даст вам (1234,).

repr не работает, так как добавляет кавычки в строку:

>>> repr('foo')
'"foo"'
1 голос
/ 26 марта 2011

вы используете неправильный пакет для сериализации. пакет struct полезен только для кода Python, который взаимодействует с кодом Си.

для сериализации в строку, вы должны использовать модуль pickle .

import pickle

t = 1234
tt = pickle.dumps(t)
t = pickle.loads(tt)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...