Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我应该如何解析这种类型的字节?_Python_String_Byte_Decode_Python 3.7 - Fatal编程技术网

Python 我应该如何解析这种类型的字节?

Python 我应该如何解析这种类型的字节?,python,string,byte,decode,python-3.7,Python,String,Byte,Decode,Python 3.7,我有以下类型的字节: b = b'2787\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x03\x01\x00\x00\x00\x00\x00\x96\x08\n\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x0047\x00>2!\tMV\xa7\x00\x00\x00\x00' 我必须将其转换为字符串并获取2787,以

我有以下类型的字节:

b = b'2787\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x03\x01\x00\x00\x00\x00\x00\x96\x08\n\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x0047\x00>2!\tMV\xa7\x00\x00\x00\x00'
我必须将其转换为字符串并获取2787,以及如何剥离\x00值, 我刚刚尝试了解码(“utf-8”),但抛出了以下错误消息:

“utf-8”编解码器无法解码位置33中的字节0x96:无效的开始字节

rstrip('\x00)也不起作用

我应该使用哪种类型的解码

我从这里获取字符串列表:

data, addr = socket_udp.recvfrom(struct.calcsize("B13s9s61s"))
info = struct.unpack("B13s9s61s", data)
b是最后的61个字符串。 字符串的内容:

class Udp_packet:
type = 0x00
id  = ""
random_num = ""
data = ""


def __init__(self, values_list, convert=False):       
    self.type       = values_list[0]
    self.id         = values_list[1]
    self.random_num = values_list[2]
    self.data       = values_list[3].split("\0")[0]

代码使用Python2.7正常工作,我刚刚移动到3.7.5,您想要从
b
中得到的显然是第一个NUL字节之前的部分,
b'\x00'
,或者简单地说
b'\0'
,因此您可以通过第一个NUL字节的索引对
b
进行切片:

b = b[:b.find(b'\0')]

这根绳子怎么样generated@gold_cy我收到了,扔了个插座。那根绳子应该是什么?在这13个起始字节中,哪些是相关的?您有一些格式规范吗?@CristiFati只是通信中使用的附加数据,问题是最后一个字符串经度并不总是61s。您有另一个选项,即使用列表理解和迭代字节。不确定它是否可以帮助您剥离
\x00
。类似于:
'.join([b代表b,如果b!=b'\x00'])
可能会对您有所帮助。