我有一些来自串口的数据如下
list_input =[ '\xbb', '\x02', '\x00', '\x11', '\xbe', '\x04', '\x00', '\x0', '\x08', '\x3', '\xb2', '\xdd', '\xd9', '\x01', '\x00', '\x00', '\x00', '\x00', '\xc4', '\x1e']
我想从每个元素中删除'\ x'并得到输出,如,
list_output=[bb,02,00,22,be,04,00,08,dd]
如果我这样做list_input =''.join(map(str, list_input))
我得到这个输出“ ” 43 @ “,即垃圾值。
请提出任何合适的解决方案
字符串\xbb
,\x02
ecc是单字符串。你看到的是它们的十六进制转义表示,因为代码为2
的ASCII字符不是可打印字符。
看起来你真的想要这个字符所代表的数字的base-16表示,没有x
前缀,因此你可以使用eord
获取ASCII值,然后hex
将其转换为十六进制表示:
>>> ord('\x02')
2
>>> ord('\xbb')
187
>>> hex(2)
'0x2'
>>> hex(187)
'0xbb'
如果你不想要qazxsw poi前缀,你可以使用切片来删除那部分:
0x