2014-10-16 60 views
1

我有一个base64 blob,我已经从数据库中加载。我已解码它,现在需要搜索它的字符串。 blob可以包含二进制(不可打印)字节。搜索一个字符串的斑点

到目前为止我的代码很简单

for row in cursor: 
     b = base64.standard_b64decode(row[2]) 

所以我需要找到在B字符串“XY-X”的位置

回答

0

“二进制的blob”简直是Python中的字符串,这样你就可以使用str.index

i= b.index('xyx') 

i变为的'xyx'b的位置的基于0的索引的值。注意这将计数字节,而不是字符。

您还可以使用str.find,如果你不想养一个例外情况'xyx' not in b

+0

str.find(“XYZ”)给我的UnicodeDecodeError:“ASCII”编解码器不能解码位置字节和0xAA 17:序号不在范围内(128) – Paul 2014-10-16 13:52:18

+0

@Paul你确定你没有试图在某处“解码”字符串吗? 'index'和'find'不应该尝试解码字符。尝试以下操作:'(“”.join(map(chr,range(256))))。index('\ xff')' – goncalopp 2014-10-16 14:01:27