我有以下python代码,它是更大的for循环的一部分,我将插入latlon数据和天气数据以供将来检查。请注意,我正在检查该迭代的数据是否为float64(因为它也可能被屏蔽,我宁愿跳过)。
values = (lat_db,lon_db,sst_db)
if type(sst_db) != numpy.float64:
continue
c.executemany('INSERT INTO current VALUES(?,?,?)',values)
表格本身是通过以下方式创建的:
conn = sqlite3.connect('sst.db')
c = conn.cursor()
# Create the database table.
c.execute('''CREATE TABLE current
(lat real, lon real, sst real)''')
运行我的脚本后,出现以下错误:
c.executemany('INSERT INTO current VALUES(?,?,?)',values)
ValueError: parameters are of unsupported type
答案 0 :(得分:2)
execute
需要序列参数。
executemany
适用于多次执行,因此它需要一系列参数序列:
values = ((lat_db,lon_db,sst_db),)
c.executemany('INSERT INTO current VALUES(?,?,?)',values)
仅当您要插入多个记录时才有意义:
values = ((lat_db1, lon_db1, sst_db1),
(lat_db2, lon_db2, sst_db2))
c.executemany('INSERT INTO current VALUES(?,?,?)', values)