簡體   English   中英

將Python字典(dict)對象轉儲到MySQL表的最快方法?

[英]Quickest way to dump Python dictionary (dict) object to a MySQL table?

我有一個dict對象。 我使用這個轉儲數據:

for alldata in data: # print all data to screen
    print data[alldata]

每個字段都有NULLS的括號[]和'無'值以及日期值的date.datetime。

如何將此dict轉儲到MySQL表? 謝謝!

打印數據顯示如下:

{'1': ['1', 'K', abc, 'xyz', None, None, None], '2': ['2', 'K', efg, 'xyz', None, None, None], '3': ['3', 'K', ijk, 'xyz', None, None, None]}

如何將這些數據插入MySQL?

假設你安裝了MySQLdb (mysql-python):

sql = "INSERT INTO mytable (a,b,c) VALUES (%(qwe)s, %(asd)s, %(zxc)s);"
data = {'qwe':1, 'asd':2, 'zxc':None}

conn = MySQLdb.connect(**params)

cursor = conn.cursor()
cursor.execute(sql, data)
cursor.close()

conn.close()

這個給出了一個非常好的例子和更兼容的例子。 http://code.activestate.com/recipes/457661-generate-sql-for-insertation-into-table-from-dicti/

這是一個可能的重復,或者可以通過這篇文章回答使用Python dict for SQL INSERT語句

但是,為了回答你的問題,我在另一個問題上發布了這個問題,我也在這里重新發布:

def ins_query_maker(tablename, rowdict):
keys = tuple(rowdict)
dictsize = len(rowdict)
sql = ''
for i in range(dictsize) :
    if(type(rowdict[keys[i]]).__name__ == 'str'):
        sql += '\'' + str(rowdict[keys[i]]) + '\''
    else:
        sql += str(rowdict[keys[i]])
    if(i< dictsize-1):
        sql += ', '
query = "insert into " + str(tablename) + " " + str(keys) + " values (" + sql + ")"
print(query) # for demo purposes we do this
return(query) #in real code we do this

對於字典

tab = {'idnumber': 1, 'fname': 'some', 'lname': 'dude', 'dob': '15/08/1947', 'mobile': 5550000914, 'age' : 70.4}

我們得到輸出,如下面的屏幕截圖所示。 請注意,這是一個簡單的示例,需要進行健全性檢查,並且可以修改以進行批量更新(使用dicts的dict)等。

輸出上面提到的代碼

暫無
暫無

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

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