экранирование результатов sqlite - PullRequest
0 голосов
/ 24 ноября 2011

Учитывая следующую входную строку:

(?i:\bsys\.user_catalog\b)

Хранится в поле sqlite TEXT. При получении с помощью выбора я получаю следующее:

При выполнении простой командной строки, например,

$ sqlite3 databse.name "select a from b" > file.results

В редакторе это выглядит так:

a screenshot of the editor

Когда я использую библиотеку Python sqlite3, она выводится как:

(?i:\x08sys\\.user_catalog\x08) 

Вопросы:

  1. Будет ли переход на BLOB, это решит для меня?
  2. Есть ли способ остаться TEXT и все же сделать это правильно.

Заранее спасибо

1 Ответ

1 голос
/ 24 ноября 2011

Пара идей:

  • Убедитесь, что строка изначально была введена как необработанная, чтобы перед ее сохранением не происходило экранирование.

  • Я думаю, что TEXT будет работать так же, как BLOB, но вам, возможно, придется подтвердить экспериментально.

  • Сохранить как буфер объект: c.execute('INSERT INTO documents VALUES (?, ?)', (somekey, buffer(yourstring)))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...