从python枚举格式化串行数据时出错

2024-09-27 01:23:17 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我从twitter上得到了一个提及的列表,并且需要知道每个提及的索引。为此,我使用:

for idx, result in enumerate(mentions, start = 48):
message = result['text']
print idx, message

它回来了

48 " first message" 

一如预期。但是,我需要将这个索引用于一些串行数据,这些串行数据需要我将索引转换为十六进制。所以。。我使用:

hidx = hex(idx)

然后返回0x30。但是,我需要以“\x30”的精确格式生成此结果,以便使用serial写入:

serial.write("\x30")

实现这一目标的最佳方法是什么?如果我保持十六进制转换的索引代码的方式,我会得到讨厌的额外0和没有反斜杠,导致串行代码实际写入serial.write(0x30),这不是我需要的。我希望找到一种方法,因为for循环,我将收到:

serial.write("\x30")
serial.write("\x31")
serial.write("\x32")

等等。尽可能多的提及。 有没有办法去掉第一个零,再加上\?也许是更好的方法?我是python和串行通信的新手,所以任何帮助都将不胜感激


Tags: 数据方法代码inmessage列表forserial
1条回答
网友
1楼 · 发布于 2024-09-27 01:23:17

(假设Python 2)"\x30"是一个1字节的字符串,所讨论的字节是ASCII代码48处的字节:

>>> print repr('\x30')
'0'

所以,要发出它所需要做的就是serial.write(chr(idx))不需要弄乱hex

相关问题 更多 >

    热门问题