我做了以下事情。
from struct import pack, unpack
t = 1234
tt = str(pack("<I", t))
打印 tt 给出\xf3\xe0\x01\x00
. 我如何t
从 tt 获得原始价值?
我尝试使用解包,repr(tt)
但没有成功。我该怎么做呢?
>>> t=1234
>>> tt=pack('<I', t)
>>> tt
'\xd2\x04\x00\x00'
>>> unpack('<I', tt)
(1234,)
>>> ttt, = unpack('<I', tt)
>>> ttt
1234
您使用了错误的包进行序列化。该struct
包仅对与 C 代码交互的 python 代码有用。
要序列化为字符串,您应该使用pickle
模块.
import pickle
t = 1234
tt = pickle.dumps(t)
t = pickle.loads(tt)
unpack('<I', tt)
会给你(1234,)
。
repr
不起作用,因为它在字符串中添加了引号:
>>> repr('foo')
'"foo"'