昨天學習了python操作mysql資料庫,記個筆記,目標是把**中的資料插入到本地資料庫中。
python鏈結mysql先安裝pymysql庫:pip install pymysql
python操作mysql必須得先connect(),然後建立游標cursor(),再是執行execute(),這個固定語法。
import pymysql
from pprint import pprint
import pandas as pd
#開啟資料庫連線,(資料庫位址,使用者和密碼,待操作的資料庫)
db = pymysql.connect(
"localhost"
,"root",""
,"demo"
)#本地的root沒有設定密碼
#使用cursor()方法建立乙個游標物件cursor
cursor = db.cursor(
)#使用 execute() 方法執行 sql 查詢
# cursor.execute("select * from goods")
#使用 fectchone() 方法獲取單條資料
# data = cursor.fetchone()
#用迴圈讀出每條資料
# for i in range(cursor.rowcount):
# row = cursor.fetchone()
# # pprint(row)
# # print(type(row))
# if row[1] == '商品11':
# print('檢查點python課程找到,通過')
# break
# else:
# print("沒有找到,不通過")
# print("\n")
#用fetchmany()每次讀取指定的條數
# for i in range(cursor.rowcount):
# row = cursor.fetchmany(10)
# pprint(row)
#用fetchall()方法讀全部,但是資料量很大時可能會卡死
# data = cursor.fetchall()
# pprint(data)
#sql插入語句
# for x in range(1000):
# sql = f"insert into goods(name,image_addr,price,stock) values('商品','image',,)"
# cursor.execute(sql)
# db.commit()
indata = pd.read_excel(
"goods.xlsx"
, encoding =
'utf-8'
)# pprint(indata)
# print(type(indata))
innum =
len(indata)
# pprint(innum)
try:
for x in
range
(innum)
: sql =
"insert into goods(name,image_addr,price,stock) values("
+"'"
+str
(indata[
'name'
][x])+
"','"
+ \
str(indata[
'image_addr'
][x])+
"',"
+str
(indata[
'price'
][x])+
","+
str(indata[
'stock'
][x])+
")"# print(sql)
cursor.execute(sql)
db.commit(
)except
:#如果發生錯誤則回滾
db.rollback(
)db.close(
)
python自動化筆記之enumerate 函式
enumerate 函式是python的內建函式 enumerate函式說明 1 函式原型 enumerate sequence,start 0 2 功能 將可迴圈序列sequence以start開始分別列出資料下標和序列資料 3 資料物件包括如列表 元組或字串,enumerate會將該資料物件組合...
python自動化之selenium
一 環境 1 selenium 安裝 pip install selenium 版本號 後可省略,預設安裝最新版本 檢視 pip show selenium 解除安裝 pip uninstall selenium 2 瀏覽器驅動 以chrome為例 國內可訪問 windows 解壓後將驅動移動至ch...
Python自動化之sqlalchemy
如果該數 據庫支援 自增列 則 sqlalchemy 預設 自動 設定 表中第乙個 型別 為整形 的主鍵 為自增列 orm的優點 隱藏了資料訪問細節,封閉 的通用資料庫互動,orm的核心。他使得我們的通用資料庫互動變得簡單易行,並且完全不用考慮該死的sql語句。快速開發,由此而來。orm使我們構造固...