我有以下代码,它采用年份列表(整数)并创建一个sql查询来查找数据库中与列表中的fiscalyears匹配的fiscalyears:
entries = db.session.query(Post).filter((Post.fiscalyear).in_(years))
然而,当我运行我的代码时,我得到的错误指向查询行:
DataError: (psycopg2.DataError) invalid input syntax for integer: "["
LINE 3: WHERE posts.fy IN ('[', '2', '0', '1', '5', ',', ' ', '...
我不确定为什么查询会以这种方式分解年份列表。当我打印出来时,打印为[2015,2014]。
有关结构的更多信息: 列表'年份'在[2015,2014]中创建了一个函数。然后我打电话给
return redirect(url_for('.yearresults', years=years))
这是
@main.route('/searchresults/<years>')
def yearresults(years):
entries = db.session.query(Post).filter(Post.fiscalyear.in_(years)).all()
return render_template('yearsearch.html', entries=entries)
答案 0 :(得分:0)
我非常确定年份是一个字符串,因此您需要将此字符串转换为列表:
@main.route('/searchresults/<years>')
def yearresults(years):
# convert years to list
years = years.replace('[', '')
years = years.replace(']', '')
years = years.split(',')
entries = db.session.query(Post).filter(Post.fiscalyear.in_(years)).all()
return render_template('yearsearch.html', entries=entries)