我知道有人问过这个问题,但我找不到问题的答案
我有一个数据类型列表float
称为fiveMin
[10.0, 13.0, ....... 34.0, 22.0]
总共约72个元素
我想将它们加载到 mysql 表中的列中
for item in fiveMin:
cursor.executemany('INSERT INTO abc (five) VALUES (?,?,?)', item)
我的连接有效,但是当脚本执行查询时,我得到
TypeError: 'Float object not Iterable'
这可能是因为executemany()
期望最后有一个可迭代的参数,而不是一个离散的元素。尝试:
cursor.executemany('INSERT INTO abc (five) VALUES (%f,%f,%f)',
[(item, item, item) for item in fiveMin])
你会插入每个项目三次(没什么意义,但我可以在没有上下文的情况下告诉你的最好的)
如果只想插入单个值,则调用将使用(item,)
作为参数,因此从离散元素构建元组。
编辑:我更新了我的答案以显示executemany
方法的正确用法。在这里,我使用列表推导来创建您的插入语句所需的参数,并更新了插入语句,使其采用浮点格式参数。