sqlite3.OperationalError: непризнанный токен: «01T00» Python datestamp

У меня возникла проблема с введением значений в базу данных SQLite. Данные, которые я загружаю с сайта сайта норвежского парламента.stortinget.no. Ошибка, которую я получаю: sqlite3.OperationalError: нераспознанный токен: «01T00»

Вот метод, в котором возникает ошибка: (Я знаю об ошибке вложения в этой выдержке)

def get_perioder(cur): DOK = "stortingsperioder" try: page = urllib2.urlopen(SITE+DOK) except: print "Failed to fetch item "+DOK if page: tree = ElementTree.parse(page) root = tree.getroot() top = list(root)[2] elements = list(top) for el in elements: fra = el.find('{http://data.stortinget.no}fra').text per_id = el.find('{http://data.stortinget.no}id').text til = el.find('{http://data.stortinget.no}til').text print "id: %s fra: %s til: %s" % (per_id, fra, til) cur.execute("INSERT INTO perioder(fra, id, til) VALUES(%s,%s,%s)" % (fra, per_id, til)) else: print "Could not load page: "+DOK 

Сообщение, напечатанное печать чуть выше cur.execute, равно: id: 2009-2013, 2009-10-01T00: 00: 00 с.: 2013-09-30T23: 59: 59 Вся трассировка ошибок:

 BigMac:Stortingsdata ola$ python getBasicData.py id: 2009-2013 fra: 2009-10-01T00:00:00 til: 2013-09-30T23:59:59 Traceback (most recent call last): File "getBasicData.py", line 169, in <module> get_perioder(cur) File "getBasicData.py", line 26, in get_perioder cur.execute("INSERT INTO perioder(fra, id, til) VALUES(%s,%s,%s)" % (fra, per_id, til)) sqlite3.OperationalError: unrecognized token: "01T00" 

Я ссылался на руководство SQLite, и кажется, что формат поддерживается, поэтому мне интересно, откуда эта проблема.

  • Ошибка декодирования Python ASCII и Unicode
  • Возврат запроса DateTimeField Нет в Django
  • Возможно ли заблокировать файл sqlite в файловой системе NFS?
  • Можете ли вы добиться нечувствительного к регистру «уникального» ограничения в Sqlite3 (с Django)?
  • Как заблокировать все соединение SQLite (заблокированное чтение + заблокированная запись)?
  • Sqlite / SQLAlchemy: как применять внешние ключи?
  • Как подключить Javascript к Python для совместного использования данных в формате JSON в обоих направлениях?
  • Как присоединиться к трем таблицам с SQLalchemy и сохранить все столбцы в одной из таблиц?
  • One Solution collect form web for “sqlite3.OperationalError: непризнанный токен: «01T00» Python datestamp”

    Правильный способ – использовать параметризованный запрос.
    Пример:

     cur.execute("""INSERT INTO perioder(fra, id, til) VALUES (?,?,?);""", (fra, per_id, til)) 

    Для каждого драйвера базы данных существует определенный параметр «стиль».
    В случае SQLite этот стиль параметра ? ,

    Также обратите внимание, что значения параметра передаются как второй аргумент для execute() .
    Использование string-интерполяции оставляет вас уязвимым для всех видов проблем с кавычками (например, тот, который привел вас сюда), и возможность атаки SQL-инъекций.

    Для получения дополнительной информации ознакомьтесь с DB-API и вики -версией базы данных .

    Python - лучший язык программирования в мире.