我正在尝试将来自sql函数的变量存储在sqlite3数据库中。我不确定我处理参数的方式是否正确。没有语法错误,但页面显示500错误。
标题,高温,低温和desc是公司名称。该表称为天气预报。
删除有问题的代码后,页面将正常加载。 当然,我有一个连接字符串,并且将变量正确映射到函数的输出,但是对于代码段而言,它们不是必需的。
params = {'title'[
: day1titlevar,
: day2titlevar,
: day3titlevar,
: day4titlevar,
: day5titlevar,
: day6titlevar],
'hightemp'[
: day1highvar,
: day2highvar,
: day3highvar,
: day4highvar,
: day5highvar,
: day6highvar],
'lowtemp'[
: day1lowvar,
: day2lowvar,
: day3lowvar,
: day4lowvar,
: day5lowvar,
: day6lowvar],
'desc'[
: day1descvar,
: day2descvar,
: day3descvar,
: day4descvar,
: day5descvar,
: day6descvar]
}
db.execute("insert into weatherforecast values(:day1titlevar,:day1highvar,:day1lowvar,:day1descvar,:day2titlevar,:day2highvar,:day2lowvar,:day2descvar,:day3titlevar,:day3highvar,:day3lowvar,:day3descvar,:day4titlevar,:day4highvar,:day4lowvar,:day4descvar,:day5titlevar,:day5highvar,:day5lowvar,:day5descvar,:day6titlevar,:day6highvar,:day6lowvar,:day6descvar);", params)
db.commit()
db.close()
答案 0 :(得分:0)
我认为您希望基于以下代码:
data = [dict(day=1,temp=25),
dict(day=2,temp=22),
dict(day=3,temp=19)]
for measure in data: # just for visual check
print(measure['day'],measure['temp'])
for measure in data:
db.execute('insert into forecast("day", "temp") values(:day,:temp);', measure)