Python / SQL将多个变量插入参数并具有多个参数

时间:2019-02-16 18:04:15

标签: python sql sqlite

我正在尝试将来自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()

1 个答案:

答案 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)