执行准备好的语句的参数数量不正确-Python / MySQL

时间:2018-11-02 10:02:22

标签: mysql python-2.7

执行以下代码以便通过python中的变量将多个值插入mysql时,我得到:

  

“执行'result = cursor.executemany(sql_insert_query,records_to_insert)'后执行预备语句的参数数量错误”

如果我删除“ prepared = True”,则错误变为:

  

“并非在SQL语句中使用了所有参数”

gcloud compute forwarding-rules create rule-name --ip-protocol TCP \
    --ports 80 --address IP ADDRESS --target-instance target-instance-name  

任何人都可以指定问题出在哪里吗?

1 个答案:

答案 0 :(得分:0)

您传递的是字符列表,而不是元组。例如,如果您尝试运行:

for record in records_to_insert:
    print(record, isinstance(record, str), isinstance(record, tuple))

您将获得:

x True False
y True False
z True False

要在python中使用单个元素创建元组,您可以执行以下操作:

records_to_insert = [
    ('x',),
    ('y',),
    ('z',) 
]

如果您有一个参数列表,并且想将所有参数都转换为元组,则可以执行以下操作:

list_of_elements = list("list_of_characters")
tuples = [
    tuple(e) for e in list_of_elements
]

希望这会有所帮助!