如何在for循环中将python变量作为sqlite列名传递

时间:2016-10-05 02:37:28

标签: python sqlite

看起来有类似的问题,但我找不到答案。

城市列表中的城市在数据库中具有相应的列名称。我试图用pyowm找到特定城市的压力,然后将该值插入相应的列。

错误是没有名为“city”的列。我可以看到问题是什么,但不知道如何解决它。非常感谢任何帮助!

import pyowm
import sqlite3

conn = sqlite3.connect(r"C:\Users\Hanley Smith\Desktop\machinelearning\pressure_table.db")
cursor = conn.cursor()

owm = pyowm.OWM('eb68e3b0c908251771e67882d7a8ddff')

cities = ["tokyo", "jakarta"]

for city in cities:
    weather = owm.weather_at_place(city).get_weather()
    pressure = weather.get_pressure()['press']
    cursor.execute("INSERT INTO PRESSURE (city) values (?)", (pressure,))

conn.commit()

1 个答案:

答案 0 :(得分:2)

将变量名称与这样的字符串连接起来。

cursor.execute("INSERT INTO PRESSURE (" + city + ") values (?)", (pressure,))

或使用%s

更清洁的方式
cursor.execute("INSERT INTO PRESSURE (%s) values (?)" % (city), (pressure,))