溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python將數(shù)據(jù)插入數(shù)據(jù)庫的方法

發(fā)布時間:2020-08-15 10:08:07 來源:億速云 閱讀:781 作者:小新 欄目:編程語言

這篇文章主要介紹了python將數(shù)據(jù)插入數(shù)據(jù)庫的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

python將數(shù)據(jù)插入數(shù)據(jù)庫的方法:首先讀入數(shù)據(jù)并建立數(shù)據(jù)庫連接;然后創(chuàng)建數(shù)據(jù)庫;接著執(zhí)行插入數(shù)據(jù)語句,迭代讀取每行數(shù)據(jù);最后關(guān)閉數(shù)據(jù)庫連接即可。

python將數(shù)據(jù)插入數(shù)據(jù)庫的方法

比如現(xiàn)在我們要將如下Excel數(shù)據(jù)表格插入到MySQL數(shù)據(jù)庫中,該如何實現(xiàn)呢?

python將數(shù)據(jù)插入數(shù)據(jù)庫的方法

實現(xiàn)代碼:

#導(dǎo)入需要使用到的數(shù)據(jù)模塊
import pandas as pd
import pymysql

#讀入數(shù)據(jù)
filepath = 'E:\_DataSet\catering_sale.xls'
data = pd.read_excel(filepath)

#建立數(shù)據(jù)庫連接
db = pymysql.connect('localhost','root','1234','python_analysis')
#獲取游標(biāo)對象
cursor = db.cursor()
#創(chuàng)建數(shù)據(jù)庫,如果數(shù)據(jù)庫已經(jīng)存在,注意主鍵不要重復(fù),否則出錯
try:
    cursor.execute('create table catering_sale(num int primary key,date datetime, sale float )')
except:
    print('數(shù)據(jù)庫已存在!')

#插入數(shù)據(jù)語句
query = """insert into catering_sale (num, date, sale) values (%s,%s,%s)"""

#迭代讀取每行數(shù)據(jù)
#values中元素有個類型的強(qiáng)制轉(zhuǎn)換,否則會出錯的
#應(yīng)該會有其他更合適的方式,可以進(jìn)一步了解
for r in range(0, len(data)):
    num = data.ix[r,0]
    date = data.ix[r,1]
    sale = data.ix[r,2]
    values = (int(num), str(date), float(sale))
    cursor.execute(query, values)

#關(guān)閉游標(biāo),提交,關(guān)閉數(shù)據(jù)庫連接
#如果沒有這些關(guān)閉操作,執(zhí)行后在數(shù)據(jù)庫中查看不到數(shù)據(jù)
cursor.close()
db.commit()
db.close()

#重新建立數(shù)據(jù)庫連接
db = pymysql.connect('localhost','root','1234','python_anylysis')
cursor = db.cursor()
#查詢數(shù)據(jù)庫并打印內(nèi)容
cursor.execute('''select * from catering_sale''')
results = cursor.fetchall()
for row in results:
    print(row)
#關(guān)閉
cursor.close()
db.commit()
db.close()

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享python將數(shù)據(jù)插入數(shù)據(jù)庫的方法內(nèi)容對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI