我从查询中检索到sql结果。
编码:cp1252-*-
导入pyodbc
进口马里亚德布
。
。
连接(...
光标= cnxn.光标()
cursor. execute("从ficcli中选择cli和lib")
(3)将数据库中的数据
然后
连接(...
。
。
数据库中的所有数据都是空的。“
光标2 = cnxn2.cursor()
查询的结果。
提交()
我收到一条错误消息
Traceback (most recent call last):
File "<pyshell#42>", line 1, in <module>
cursor2.executemany(mySql_insert_query,test_result[0])
File "C:\Users\alain\AppData\Local\Programs\Python\Python310\lib\site-packages\mariadb\cursors.py", line 350, in executemany
self._parse_execute(statement, parameters[0], is_bulk=True)
File "C:\Users\alain\AppData\Local\Programs\Python\Python310\lib\site-packages\mariadb\cursors.py", line 218, in _parse_execute
self._check_execute_params()
File "C:\Users\alain\AppData\Local\Programs\Python\Python310\lib\site-packages\mariadb\cursors.py", line 147, in _check_execute_params
raise mariadb.ProgrammingError("Data argument must be "
mariadb.ProgrammingError: Data argument must be Tuple or List
我查过了
type(result)
<class 'list'>
结果
[('totoco ', ' toto limited ')]
如果创建列表
test=[]
test=[('totoco ', ' toto limited ')]
然后我执行
cursor2.executemany(mySqlinsert_query,test]
cnxn2.commit()
它工作
如果我尝试
result==test
错误
我该怎么做才能让它发挥作用呢?
1条答案
按热度按时间h5qlskok1#
execute_many()需要一个参数序列作为第二个参数,该参数序列通常是元组数组(列表)。
与您所描述的相反,该异常表明您正在向executemany()传递一个元组,而不是一个元组序列:
File "<pyshell#42>", line 1, in <module> cursor2.executemany(mySql_insert_query,test_result[0])
1.不将
result
作为参数传递1.如果test_result是一个元组序列,则传递第一个元组元素,而不是元组序列。