在我的脚本中,我创建了一个相当长的列表,然后我需要插入到我的数据库中。我想知道是否有一种方法可以直接使用数组的内容创建一个SQL语句,而不是过度使用类似的东西:
cursor.execute(
'''INSERT INTO
my_table
VALUES (%s, %s, %s, %s, %s, /* 'til almost infinity */);''',
(list[0], list[1], list[3]... /* again almost until infinity */))
答案 0 :(得分:2)
您可以使用string formatting
和join
来使用数据list
的长度来实现VALUES扩展。然后,您可以只使用list
或tuple
作为实际值。类似的东西:
cursor.execute("""INSERT INTO my_table VALUES({})""".format(','.join('%s' for x in my_list)), data)
答案 1 :(得分:1)
这样的事情怎么样:
cursor.execute(
'''INSERT INTO
my_table
VALUES (''' + ','.join(['%s' for x in mylist]) + ''');''',
mylist
)
使用','.join(['%s' for x in mylist])
为数据创建逗号分隔的占位符字符串。