Я пытаюсь создать простой кеш с использованием SQLite для определенных запросов с API WolframAlpha в Python. Проблема в том, что SQLite INSERT не работает для определенных запросов, и я действительно не знаю, почему.Ошибка вставки SQLite в Python
В http://products.wolframalpha.com/api/explorer.html можно выполнить ровно два запроса, которые я выполнил. К ним относятся:
nutritional information of coke
и
nutritional information of milk
Инструкция INSERT для первого запроса отлично работает, но второй не удается.
Вот код, который заботится о функциональности кэширования:
def run_query(input_query):
input_query = query_stub + input_query
cursor.execute('SELECT response FROM cache WHERE query=?', (input_query,))
response = cursor.fetchone()
if response:
print " Cache hit on: %s" % (input_query)
response = response[0]
else:
print " Cache miss on: %s" % (input_query)
query = waeo.CreateQuery(input_query)
print '1'
response = waeo.PerformQuery(query)
print '2'
cursor.execute('INSERT INTO cache VALUES (?, ?)', (input_query, response,))
print '3'
conn.commit()
print '4'
output_json = xmltodict.parse(response)
return jsonify(output_json)
таблица определяется как:
cursor.execute('CREATE TABLE cache (query text, response text)')
А вот часть из бревен, так как вы можете видеть, INSERT не работает:
* Running on http://0.0.0.0:8080/
Cache miss on: nutritional information of coke
1
2
3
4
127.0.0.1 - - [20/Sep/2013 17:51:16] "GET /wa?item=coke HTTP/1.1" 200 -
Cache miss on: nutritional information of milk
1
2
127.0.0.1 - - [20/Sep/2013 17:51:47] "GET /wa?item=milk HTTP/1.1" 500 -
Если вы говорите, что 'cursor.execute' терпит неудачу, он должен вызвать исключение, можете ли вы поймать, что видите, что он говорит? – dwxw