Python解码已经解码的字符串?

2024-07-02 13:49:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试转换从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'


Tags: 对象字符串inindexbytes解码listutf
1条回答
网友
1楼 · 发布于 2024-07-02 13:49:48

使用bytes函数https://www.programiz.com/python-programming/methods/built-in/bytes

你的字符串"b'\x00\x03q\x1d'"有一个前导的"b'"和一个尾随的"'"你不需要,所以

list(bytes(numOfBytes[2:-2], 'utf8'))

应该:

  • 去掉字符串的前两个和最后一个字符
  • 使用utf8解码
  • 转换为列表

相关问题 更多 >