gpt4 book ai didi

python:打印十六进制数据而不是字典

转载 作者:行者123 更新时间:2023-12-01 04:43:17 26 4
gpt4 key购买 nike

尝试从 Lowe's Iris 智能交换机解码 Zigbee 协议(protocol)。我正在使用的 API 回调接收一个已经解析的帧,并作为(我相信)字典对象(?)发送到回调。我的代码:

def callback(data):
print data

打印以下内容:

{'profile': '\xc2\x16', 'source_addr': '\x93\x0c', 'dest_endpoint':
'\x02', 'rf_data': '\t\x00\x81\x00\x00', 'source_endpoint': '\x02',
'options': '\x01', 'source_addr_long': '\x00\ro\x00\x03\xbc\xdf\xab',
'cluster': '\x00\xef', 'id': 'rx_explicit'}

我认为这是按字节顺序排列的,我更喜欢这样的输出:

C2 16 93 0C 02 09 00 81 00 00 02 01 00 ...

有什么方法可以使用Python内置函数并使用给定的“data”参数来做到这一点?另外,我不知道如何将“\ro”解释为 8 位十六进制。我认为“\t”是 0x09。

我真正想要的是数据帧的原始转储,但我不知道是否有 API 调用。

最佳答案

Any way to do this with Python built-ins, with the given 'data' argument?

没有。字典是任意排序的,因此无法知道值应该采用什么顺序。

Also, I dont know how to interpret "\ro" as 8-bit hex.

它是“\r”和“o”,即0x0d 0x6f。

"\t", I assume, is 0x09.

>>> hex(ord('\t'))
'0x9'

What I would REALLY like is a raw dump of the dataframe, but I don't know if there is an API call for that.

我们不知道,因为您首先没有分享您正在使用哪个 API。

关于python:打印十六进制数据而不是字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30083004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com