2016-02-20 3 views
0

Я хочу сделать следующее:Изменить формат результата запроса SQLAlchemy

def EMA(file): 

current_time = datetime.datetime.utcnow() 
five_minutes_ago = current_time - datetime.timedelta(minutes=5) 
sub_within_las_five_min = db.session.query(visits).filter((visits.date > five_minutes_ago),(visits.name == file)).all() 
a = len(sub_within_las_five_min) 
return a 

Я получаю эту ошибку:

InterfaceError: (sqlite3.InterfaceError) Error binding parameter 1 - probably unsupported type. [SQL: u'SELECT visits.id AS visits_id, visits.name AS visits_name, visits.date AS visits_date \nFROM visits \nWHERE visits.date > ? AND visits.name = ?'] [parameters: ('2016-02-20 12:06:43.974000', (u'vagrant.txt',))]

Я знаю, что проблема вызвана (u'vagrant.txt»,), потому что я пытался поместить 'vagrant.txt' вместо файла, и он работает. имя файла генерируется из этой точки зрения:

@app.route('/api/test/', methods=['GET']) 
def catalogue1(): 
catalogue = db.session.query(Content.name).all() 
for i in range(len(catalogue)): 
j= catalogue[i] 
s = EMA(j) 
return str(s) 

Может кто-то помочь мне, я хочу, чтобы изменить формат db.session.query (content.name), чтобы соответствовать моему первому запросу.

ответ

0

кажется ваш атрибут file, что вы передаете EMA является кортеж, а не строка, так что это может помочь:

def EMA(file): 
    filename = file[0] 
    current_time = datetime.datetime.utcnow() 
    five_minutes_ago = current_time - datetime.timedelta(minutes=5) 
    sub_within_las_five_min = db.session.query(visits).filter((visits.date > five_minutes_ago),(visits.name == filename)).all() 
    a = len(sub_within_las_five_min) 
    return a 
+0

Да это работает, спасибо человеку. – Rzozi