我在 base64 编码的数据库中有一些数据
我很容易解码它
b64 = base64.b64decode(row[2])
Run Code Online (Sandbox Code Playgroud)
但是我现在需要搜索各种文本字符串的解码数据并获取所述字符串的偏移量。解码后的数据是二进制的,即它包含许多不可打印的、NULL 等。
我试过了
ofs = b64.find('content')
Run Code Online (Sandbox Code Playgroud)
但得到一个错误 TypeError: Type str doesn't support the buffer API
这表明我显然在错误的树上吠叫
我是 Python 的新手,但出于各种原因想尝试使用它获得解决方案 - 请问有什么想法吗?
ofs = b64.find(b'content')
Run Code Online (Sandbox Code Playgroud)
或者少一点硬编码的方式
search = 'content'
ofs = b64.find(bytes(search))
Run Code Online (Sandbox Code Playgroud)
与ofs编码为一样bytes,您应该在其中查找相应的对象;)。
从文档中,bytes当用作函数返回一个新bytes对象时:
字节([源[,编码[,错误]]])
返回一个新的“bytes”对象,它是 0 <= x < 256 范围内的不可变整数序列。 bytes 是 bytearray 的不可变版本——它具有相同的非变异方法和相同的索引和切片行为。