gpt4 book ai didi

Python 连接字节数组

转载 作者:太空宇宙 更新时间:2023-11-03 15:46:38 26 4
gpt4 key购买 nike

我需要循环遍历字节数组的数组,然后从字典中选择匹配的元素。但是我尝试加入字节数组失败了:

roms = {
"\xff\xfe\x88\x84\x16\x03\xd1":"living_room",
"\x10\xe5x\xd5\x01\x08\x007":"bed_room"
}

devices = [bytearray(b'(\xff\xfe\x88\x84\x16\x03\xd1'), bytearray(b'\x10\xe5x\xd5\x01\x08\x007')]
for device in devices:
DEV = "".join(device)
print(roms[DEV])

>> TypeError: sequence item 0: expected str instance, int found

看来你不能连接一个整数,还有其他方法吗?

更新 1

在 @falsetrue 的帮助和耐心下,我成功加入了这个数组。但是,当我尝试获取设备字典项时,生成的字符串仍然会引发关键错误:

roms = {
"\xff\xfe\x88\x84\x16\x03\xd1":"living_room",
"\x10\xe5x\xd5\x01\x08\x007":"bed_room"
}

devices = [bytearray(b'(\xff\xfe\x88\x84\x16\x03\xd1'), bytearray(b'\x10\xe5x\xd5\x01\x08\x007')]

for device in devices:
DEV = str(bytes(device)).strip('b').strip("'").strip('(') # > this results in: \xff\xfe\x88\x84\x16\x03\xd1 - but still gives keyError
#DEV = bytes(device).lstrip(b'(') # > This results in: b'\xff\xfe\x88\x84\x16\x03\xd1' - keyError
print(DEV)
print(roms["\xff\xfe\x88\x84\x16\x03\xd1"])
print(roms[DEV])
print()

>> \xff\xfe\x88\x84\x16\x03\xd1
>> living_room
>> KeyError: \xff\xfe\x88\x84\x16\x03\xd1

更新2

这是设备信息:

release='1.3.0.b1', 
version='v1.8.6-379-gc44ebac on 2017-01-13',
machine='WiPy with ESP32'

也许拥有 WIPY2 的其他人可以帮我验证这一点?

最佳答案

如果您使用的是 Python 3.x:

您可以使用 bytes.decode 将字节解码为 str (或bytearray.decode)

devices = [bytearray(b'\xff\xfe\x88\x84\x16\x03\xd1'),
bytearray(b'\x10\xe5x\xd5\x01\x08\x007')]
for device in devices:
DEV = device.decode('latin1') # Use bytes.decode to convert to str
# (or bytearray.decode)
print(roms[DEV])

打印

living_room
bed_room
<小时/>

顺便说一句,我删除了字节文字中的 (

devices = [bytearray(b'(\xff\xfe\x88\x84\x16\x03\xd1'), ...
^
<小时/>

更新

如果您使用的是 Python 2.x:

使用bytes函数将device转换为bytes:

for device in devices:
DEV = bytes(device)
print(roms[DEV])

关于Python 连接字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41688262/

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