python pack integer为十六进制字节

时间:2017-01-17 04:08:41

标签: python python-3.x

我认为这很简单,但花了很长时间试图解决这个问题。

我想将整数转换为字节字符串,并以十六进制格式显示。但我似乎得到了ascii表示?具体而言,对于122的int值。

from struct import *
pack("B",122) #this returns b'z', what i need is 'b\x7A'
pack("B",255) #this returns b'\xff', which is fine.

我知道在python 2.x中你可以使用类似chr()但不能在python 3中使用的东西,这就是我所拥有的。理想情况下,解决方案可以兼顾两者。

2 个答案:

答案 0 :(得分:0)

您可以使用编解码器或字符串编码

codecs.encode(pack("B",122),"hex")

a = pack("B",122)
a.encode("hex")

答案 1 :(得分:0)

我认为你得到了你想要的结果,无论你用什么来看你的结果都会引起混乱。尝试运行此代码:

if (App::environment('local'))" exit scout

您会发现它按预期工作,并且没有断言。