python executemany 怎么动态生成占位符%s

pymysql 中executemany使用的sql语句可以使用%s,如下:

    sql = 'insert into fdata(a1,a2,a3,a4,a5,a6,a7,a8,a9) values(%s,%s,%s,%s,%s,%s,%s,%s,%s);'
    cursor.executemany(sql, sql_data)

但如果插入的表有50多个字段,%s,要写50多个?
有没有好的办法在sql中生成50个%s ?

只生成占位符可以用下面的

s=(',%s'*50)[1:]

字段名称规则for遍历下

img


fds=""
values=""
sql_data=[]
for i in range(1,51):
  fds=fds+",a"+str(i)
  values=values+",%s"
  sql_data.append(i)
fds=fds[1:]
values=values[1:]
sql = 'insert into fdata('+fds+') values('+values+');'
#cursor.executemany(sql, sql_data)

img

",".join(['%']*50)

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632