使用python在特定列中插入列表

2024-10-02 12:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据库,其中有两列sess_id数据。现在我想插入一个从py到db的列表我该怎么做。 假设这是要插入list的data列中的列表。 数据库\u list=['elem1','elem2','elem3'…]

这是我们已经做了但没有进展的事情:

    cursor_three=conn.cursor()
    cursor_three.execute('INSERT INTO table (data) VALUES (database_list)') 
    cursor_three.commit()  

Tags: 数据pyid数据库列表dbdata事情
2条回答

您应该这样迭代列表:

cursor_three=conn.cursor()
for elem in database_list:
    cursor_three.execute('INSERT INTO table (data) VALUES (%s)' % elem) 
cursor_three.commit()  

之后,除非您声明了列autoincrement row,否则您的sess_id列为空。如果你有两个排序的数组

^{pr2}$

您应该使用zip()函数同时迭代它们,如下所示:

for elem in zip(database_id_list, database_data_list):
    cursor_three.execute('INSERT INTO table (sess_id, data) VALUES (%s, %s)' % elem)  # elem is tuple here

请注意,为了简单起见,这段代码使用了stringfromat函数(您没有注意到您使用的是哪个数据库),并且它不受SQL注入的保护。最好使用sql deriver的格式化程序,例如psycopg2:

cursor_three.execute('INSERT INTO table (data) VALUES (%s)', [elem])

取决于你想做什么。如果要在一列中插入值列表,则可以循环该列表并逐行插入。也可以使用executemany而不是execute。

如果直接输入列表,则使用excutemany,否则,如果要循环使用列表,则使用execute。

cursor.executemany("""
              INSERT INTO table
              (data)
              VALUES (?)
              """, data_list)

或者

^{pr2}$

相关问题 更多 >

    热门问题