Следующий от;
Python - чтение типа BLOB из базы данных SQLite3
Python - преобразование шестнадцатеричного значения в INT / CHAR
У меня есть скрипт, который теперь запрашивает базу данных sqlite3 с заданным идентификатором.По этому идентификатору он находит IP этого устройства.Это все сделано в таблице.Затем он берет этот найденный IP-адрес и переходит к таблице 2.
В таблице 2 он затем пытается выполнить поиск строк, у которых поле IP совпадает с ранее обнаруженным IP-адресом.
Благодаря помощи впредыдущие вопросы мне удалось преобразовать исходный тип BLOB-объекта, который хранится в базе данных sqlite3, в читаемый формат (в шестнадцатеричный формат, а затем в действительный IP-адрес).Теперь я обнаружил, что на самом деле я не могу выполнить команду sql where для поиска этого.Возможно, наивно я пытался выполнить поиск исходного возвращаемого значения из моего первого поиска, однако это возвращает буфер
(<read-write buffer ptr 0x7f251c86d778, size 4 at 0x7f251c86d738>,)
Это то, что я не могу явно использовать для поиска точной копии большого двоичного объекта, так какон содержит другую информацию.Единственное решение, о котором я подумал, - это пересмотреть базу данных и преобразовать каждый IP-адрес из BLOB-объекта в гекс и выполнить сравнение с моей ранее сохраненной переменной, где она была преобразована в гекс из предыдущей таблицы.
Является ли этоединственный способ я могу выполнить поиск, как это?Сегодня мне очень помогли, поэтому я рад указателям в правильном направлении
Отрывок кода: возвращает IP из первой таблицы
rows = c.execute('select ip from table1 where name= ' + "\"" + host + "\"")
for row in rows:
print str(row[0]).encode("hex")