2016-04-08 107 views
1

我想插入一個像這樣的列表,但要大得多。 list=[{"name":"Tom","gender":"male",},{"name":"Jack","gender":"male",},{"name":"Lee","gender":"male",}]進入MySQL使用python來構建表。我已經導入MySQLdb了,那我該怎麼做?在Python中使用Python插入字典的列表

+0

你真的不得不縮小這個下。這是從結構到具有匹配列名稱的表嗎? – tadman

回答

2

假設你有一個與namegender列命名爲foo表,這裏是你如何使用executemany()插入字典的這個名單到表:

import MySQLdb 

db = MySQLdb.connect(...) 
cursor = db.cursor() 

data = [ 
    {"name":"Tom", "gender":"male"}, 
    {"name":"Jack", "gender":"male"}, 
    {"name":"Lee", "gender":"male"} 
] 
cursor.executemany(""" 
    INSERT INTO foo (name, gender) 
    VALUES (%(name)s, %(gender)s)""", data) 
db.commit() 
+0

謝謝,它很有用,但是當我將它用於我自己的數據時,它不起作用。 – GUOJINGWEI

+0

我自己就像:data = [dict1,dict2,dict3] dict1 = {「name」:「Tom」,「source」:u'240907112_1333816867','Title':u'\ u300a \ u8ba4 \ u771f \ u7684 \ u300b',「_ id」:u'47092'}。在MySQL中,我已經建立了一個表並使用_id作爲主鍵。我認爲這可能是因爲你有值,但我不知道該怎麼做。 – GUOJINGWEI

+0

@GUOJINGWEI請看看是否有意義創建一個單獨的問題,試圖將建議的解決方案應用於您的實際數據。謝謝。 – alecxe