Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:-如何搜索SQLITE3DB以查找Blob类型?_Python_Sqlite_Hex - Fatal编程技术网

Python:-如何搜索SQLITE3DB以查找Blob类型?

Python:-如何搜索SQLITE3DB以查找Blob类型?,python,sqlite,hex,Python,Sqlite,Hex,从 我有一个脚本,现在可以用给定的id查询sqlite3数据库。它可以从这个id中找到该设备的IP。这些都在表1中完成。然后它获取这个找到的IP并转到表2 然后,在表2中,它尝试搜索具有与先前发现的IP匹配的字段IP的行 感谢前面问题中的帮助,我成功地将存储在sqlite3数据库中的原始blob类型转换为可读格式(转换为十六进制,然后转换为实际的IP)。现在我发现我实际上无法执行SQLWHERE命令来搜索这个。 也许我很天真地尝试从第一次搜索中搜索原始返回值,但是这会返回一个缓冲区 (<

我有一个脚本,现在可以用给定的id查询sqlite3数据库。它可以从这个id中找到该设备的IP。这些都在表1中完成。然后它获取这个找到的IP并转到表2

然后,在表2中,它尝试搜索具有与先前发现的IP匹配的字段IP的行

感谢前面问题中的帮助,我成功地将存储在sqlite3数据库中的原始blob类型转换为可读格式(转换为十六进制,然后转换为实际的IP)。现在我发现我实际上无法执行SQLWHERE命令来搜索这个。 也许我很天真地尝试从第一次搜索中搜索原始返回值,但是这会返回一个缓冲区

(<read-write buffer ptr 0x7f251c86d778, size 4 at 0x7f251c86d738>,)

为什么您必须搜索内部blob数据?你不能将你要查找的数据存储在适当的列中吗?也就是说,在将其存储到数据库中之前对其进行反序列化,并为该表生成一个真正的模式?我正在访问的数据库不是我创建的,它是由一个外部服务创建和使用的,但我正在尝试创建一个查询它的方法,因为它确实包含一些有用的信息-不幸的是,这意味着我必须解决它,但是它的定义不熟悉sqlite中的blob处理,但是您不能
execute('SELECT bar FROM baz,其中您的_blob_字段类似?','%foo%'))
?@patrys不起作用。我认为这与python将检索到的blob数据存储到一个缓冲区有关,该缓冲区与DB中的原始blob数据不同。因此,当将缓冲区与blob进行比较时,它将永远不会匹配
rows = c.execute('select ip from table1 where name= ' + "\"" + host + "\"") 
   for row in rows:
       print str(row[0]).encode("hex")