2013-07-26 43 views
0

我試圖寫一個簡單的函數從Python字典更新MySQL表:字典轉換爲字符串和昏迷單獨的每個鍵 - 值對

data = {'foo':1, 'bar':2} 
table = 'mytable' 
pk = 'mypk' 
pk_value = 1 

sql = '' 
sql += 'UPDATE ' + table 
sql += 'SET ' + convert_dict_to_str(data) 
sql += 'WHERE ' + pk 
sql += ' = ' + pk_value 
sql += ';' 


def convert_dict_to_str(data): 
    result = '' 
    for key in data: 
     result += "{key} = {value}".format(key=key, value=data[key]) 
    return result 

print convert_dict_to_str(data) 

但我被困在如何轉換字典變成"key = value, key = value"? 在我的例子所需要的輸出應該是:

'foo = 1, bar = 2' 
+0

代碼有什麼問題?我的第一眼看起來沒問題。 – User007

+1

您應該使用參數化語句,而不是構建像這樣容易發生SQL注入的語句。 –

+0

嗨@Pedro,你能告訴我更多關於這個嗎?,我的意思是如何實現你所說的。 – Vor

回答

10

像這樣的事情?

>>> ", ".join(["=".join([key, str(val)]) for key, val in data.items()]) 
'foo=1, bar=2' 
+0

太棒了,這就是我一直在尋找的!謝謝 – Vor

+0

@Vor:不客氣。 :) –

相關問題