2015-01-14 48 views
0

所以我得到了twitter的提及列表,並且需要知道每個提及的索引。要做到這一點我使用:麻煩格式化python枚舉的串行數據

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

其預期返回

48 " first message" 

。但是,我需要使用這個索引的一些串行數據,需要我將索引轉換爲十六進制。所以..我用:

hidx = hex(idx) 

然後返回0x30。不過,我需要以某種方式在「\ X30」的確切格式這個結果讓我可以使用串行寫:

serial.write("\x30") 

什麼是實現這一目標的最佳方式是什麼?如果我保持我的十六進制轉換索引代碼的方式,我得到那討厭的額外0和沒有反斜槓,導致串行代碼實際上寫 serial.write(0x30),這不是我所需要的。林希望找到一種方式,因爲for循環,我會收到:

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

等。儘可能多地提到我所需要的。 有沒有辦法去掉第一個零並添加\?也許更好的方法?林新的python和串行通信,所以任何幫助將不勝感激。

回答

1

(假設的Python 2)"\x30"是1字節的字符串和有問題的字節是一個以ASCII碼48:

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

所以,你需要做的發射是serial.write(chr(idx)) - 不需要亂用hex!