我正在尝试转换从 NetFlowv9 记录接收到的值,更具体地说,是“IN_BYTES=”值。问题是我可以获得该值,但它以字符串格式出现,这意味着它已经解码并且收到的值类似于: b'\x00\x03q\x1d' 我将此值分配给一个变量,如下所示:
numOfBytes = (flowEntry[flowEntry.index("IN_BYTES=b") + 9:flowEntry.index("IN_PKTS=")-1])
我需要 int 中的这个值,但是,正如我所说,这是一个“str”对象,因此我似乎无法再次将它“解码”为“utf-8”或从“list()”获取值?
到目前为止,这是我尝试过的:将“numOfBytes”解码为 utf-8:
numOfBytesDec = numOfBytes.decode('utf-8')
但我显然得到一个错误:
AttributeError: 'str' object has no attribute 'decode'
我也尝试过转换为列表:
numOfBytesList = list(numOfBytes)
但我得到了错误:
TypeError: 'str' object cannot be interpreted as an integer
发生的事情是 numOfBytes = "b'\x00\x03q\x1d'" 并且由于它是一个字符串,我无法操纵它来将其转换为数字。我期望的是这样的:
numOfBytes = b'\x00\x03q\x1d'
numOfBytesList = list(numOfBytes)
并且 'numOfBytesList' 应该返回类似 [0, 3, 113, 29] 的东西,所以我可以在之后计算 0*(255*255*255)+3*(255*255)+113*255+29 例如..
有什么办法可以将字符串转换为可用的 Bytes 对象?TLDR:有没有办法转换"b'\x00\x03q\x1d'"为b'\x00\x03q\x1d'