繁体   English   中英

Python sqlite3的executemany函数返回ValueError

[英]Python sqlite3's executemany function returns ValueError


我有以下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

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM