2017-04-15 87 views
1

我想從字典中取出數據並將其插入到mysql數據庫中。我有以下一段代碼。python字典插入到mysql

import pymysql 
 

 
connect = pymysql.Connect(
 
    host='localhost', 
 
    port=3306, 
 
    user='root', 
 
    passwd='my729501s', 
 
    db='major', 
 
    charset='utf8' 
 
) 
 
data = {'video_title': 'hanzi', 'id': 1, 'video_url': 'www.bad.com', 'image_url': 'www.baidu.com', 'subject_title': 'nothong'} 
 
cursor = connect.cursor() 
 
table = 'video_title' 
 
cols = data.keys() 
 
vals = data.values() 
 
sql = "INSERT INTO %s (%s) VALUES(%s)" % (table, ",".join(cols), ",".join(vals)) 
 

 
cursor.execute(sql) 
 

 
connect.commit() 
 
connect.close() 
 
cursor.close()
enter image description here

+0

有什麼錯誤? –

+0

回溯(最近一次調用最後一次): 文件「C:/Users/1/PycharmProjects/untitled1/python4.py」,第18行,在 sql =「INSERT INTO%s(%s)VALUES(%s) 「%(表」,「加入(COLS)」,「加盟(瓦爾斯)。) 類型錯誤:序列項0:預計海峽例如,INT發現 –

+0

的形象都有關錯誤 –

回答

0

出現這種情況,因爲在你的列表vals一個整數。所以你需要將它轉換爲字符串。修改你的代碼如下。

sql = "INSERT INTO %s (%s) VALUES(%s)" % (table, ",".join(cols), ",".join(str(x) for x in vals)) 
+0

AttributeError:'str'對象沒有屬性'keys' –

+0

Traceback(最近調用最後一個): 文件「C:/ Users/1 /PycharmProjects/untitled1/python4.py「,第18行,在 cols = data.keys() AttributeError:'str'object has no attribute'keys' –

+0

data = {'video_title':'hanzi','id ':1,'video_url':'www.bad.com','image_url':'www.baidu.com','subject_title':'nothong'} data = json.dumps(data) –