Python 2.7 SQLite-错误“;sqlite3.0错误:接近“0”&引用;:语法错误“;

Python 2.7 SQLite-错误“;sqlite3.0错误:接近“0”&引用;:语法错误“;,python-2.7,datetime,sqlite,Python 2.7,Datetime,Sqlite,这个简单的问题一直困扰着我,虽然我希望这是一个简单的解决办法,但我还没有找到必要的改变 我试图完成的是构建一个简单的DB表,其中包含weatherundergroud昨天的降水量。我能够解析必要的json数据,但是当我尝试向DB条目添加时间戳时,我无法填充DB。我可以用一个变量来使用这个语法,但是相关的DB change不能用时间戳之外的两个变量。以下是代码的简化版本: conn = sqlite3.connect('precip.sqlite3') curs = conn.cursor()

这个简单的问题一直困扰着我,虽然我希望这是一个简单的解决办法,但我还没有找到必要的改变

我试图完成的是构建一个简单的DB表,其中包含weatherundergroud昨天的降水量。我能够解析必要的json数据,但是当我尝试向DB条目添加时间戳时,我无法填充DB。我可以用一个变量来使用这个语法,但是相关的DB change不能用时间戳之外的两个变量。以下是代码的简化版本:

conn = sqlite3.connect('precip.sqlite3')
curs = conn.cursor()

curs.execute('''
CREATE TABLE IF NOT EXISTS Precip
(timestamp DATETIME, date TEXT, precip TEXT)''')

date = js["history"]["date"]["pretty"]
precip = js["history"]["dailysummary"][0]["precipm"]

print "date:", date, "precipitation", precip, "mm"

curs.execute("INSERT INTO Precip values(datetime('now'),(?, ?))",(date, precip,))
conn.commit()
出现此错误时失败: 执行(“插入Precip值(datetime('now'),(?,?)”,(date,Precip,))
sqlite3.OperationalError:near“,”:语法错误SQL语句中的括号太多:


插入Precip值(datetime('now')、(?、?)
(?,?)
将是一个包含两列的行值,这在这里没有意义

VALUES子句需要三个表达式,因此只需准确地给出:

插入Precip值(datetime('now'),?,?)

插入Precip值(日期时间('now'),?,?)“
对我来说更有意义。谢谢!这就解决了问题,尽管我不确定为什么额外的括号分组会导致错误。我假设括号将其中的两个条目分组为一个条目,因此您只将两个条目插入表中,第二个条目是复合条目。