簡體   English   中英

python pack以字符串格式輸出

[英]python pack output in string format

我做了以下事情。

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

打印tt給出\\xf3\\xe0\\x01\\x00 如何從tt獲得t原始值?

我嘗試使用解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"'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM