簡體   English   中英

從python列表迭代插入MySQL表

[英]Iterative insert into MySQL table from a python list

我試圖將下面列表中的項目(使用MySQLdb模塊)插入到mysql表中,只是為了發現插入字母'x'而不是列表中的名稱。

name_list=['james', 'john', 'michael']
for x in name_list:
    cur.execute("INSERT INTO box(names) VALUES('x')")
db.commit()

有什么建議么? 謝謝。

這是一種有效的方法,但僅適用於int數據類型:

for x in xrange(1,1000,2):
    cursor.execute('INSERT INTO Persons (PersonID) VALUES(' + str(x) + ');')

在這種情況下,您已插入字符串x。 變量x不會解析到SQL命令中。 但是,大多數數據庫庫的execute語句在插入參數時都有一個巧妙的技巧,如下所示:

MySQLdb的

cur.execute("INSERT INTO box(names) VALUES(%s)", (x,))

*請注意, x代表(x,)因此將其放入SQL命令時將其視為元組。

pyodbc

cur.execute("INSERT INTO box(names) VALUES(?)",x)

如您所見,不同庫的詳細信息略有不同。 有關為字符串中的占位符使用的格式,請參見模塊的paramstyle ;有關為參數提供單個參數而不是元組的模塊,請參見模塊的文檔。

這將使用x並將其放在命令的值中。 更好的是,它根據目標表對其進行格式化!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM