我正在尝试转换从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()获取值?你知道吗
以下是我迄今为止尝试过的: 将“numobytes”解码为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之后进行计算。。你知道吗
有没有办法把字符串转换成一个可使用的字节对象?
TLDR:有没有办法将"b'\x00\x03q\x1d'"
转换成b'\x00\x03q\x1d'
使用
bytes
函数https://www.programiz.com/python-programming/methods/built-in/bytes你的字符串
"b'\x00\x03q\x1d'"
有一个前导的"b'"
和一个尾随的"'"
你不需要,所以应该:
相关问题 更多 >
编程相关推荐