Python: - 如何在SQLite3 DB中搜索Blob类型?

时间:2011-09-29 15:17:01

标签: python sqlite hex

继续之后;

Python - Reading BLOB type from SQLite3 DB

Python - Converting Hex to INT/CHAR

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

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

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

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

这显然不能用于搜索blob的精确副本,因为它包含其他信息。我想到的唯一解决方案是遍历数据库并将每个IP从一个blob转换为十六进制,并与我之前存储的变量进行比较,其中变量已从上一个表转换为十六进制。

这是我可以像这样执行搜索的唯一方法吗?今天我在这方面得到了很多帮助,所以我很高兴能够指出正确的方向

代码摘录: 这将返回第一个表中的IP

rows = c.execute('select ip from table1 where name= ' + "\"" + host + "\"") 
   for row in rows:
       print str(row[0]).encode("hex")

0 个答案:

没有答案