使用python 3

时间:2019-07-11 06:38:30

标签: python mysql python-3.x

我想使用mysql dbpython插入多个记录。我使用mysql.connector。但我收到错误。当我尝试插入不格式化的记录时,它可以工作,但格式化时多行却不行! 我使用了?而不是%s,但仍然收到此错误。

   my_nodes = []
   myconnection = mysql.connector.connect(
       host='127.0.0.1', user='root', passwd='1234', db='job_graph1')
   mycursor=myconnection.cursor()
   for nodes in range(1, 33):
       weight = random.randint(0, 100)
       my_record = (nodes, weight, False, False)
       my_nodes.append(my_record)

   sqlqu = "INSERT INTO t_node(n_id,n_weight,is_entry,is_exit) VALUES(%S, %S, %s, %s)"
   mycursor.executemany(sqlqu, my_nodes)

我收到的错误是:

  

处理格式参数失败; %s“%错误)   mysql.connector.errors.ProgrammingError:处理格式参数失败; 'tuple'对象不能解释为整数

1 个答案:

答案 0 :(得分:0)

因此,您需要在SQL请求中删除%S。 因为它会导致此错误:

print("(%s, %S)"%(1, 2)) 
ValueError: unsupported format character 'S' (0x53) at index 6

因此,使用VALUES(%S, %S, %s, %s)代替VALUES(%s, %s, %s, %s)