Python之資料庫匯入(py3 5)

2022-05-04 21:45:19 字數 1782 閱讀 1813

資料庫版本:mysql

python版本:3.5

之前用想用mysqldb來著,後來發現py3.5版本不支援,現選擇pymysql

現在想將資料庫adidas中的表jd_comment讀取至python中的dataframe,方便資料分析處理

大眾**如下:

import

pymysql

import

pandas as pd

import

numpy as np

try:

conn = pymysql.connect(host='

localhost

', user='

root

', passwd='

123456

', db='

adidas

', charset='

utf8')

cur =conn.cursor()

cur.execute(

'select * from jd_comment')

rows = cur.fetchall() #

獲取元組列表

cur.close()

conn.close()

except

pymysql.error as e:

print('

mysql error %d: %s

' %(e.args[0], e.args[1]))

cols = list(zip(*cur.description)) #

可以看到列名(由元組構成)

#將資料庫中的資料儲存為dataframe(資料必須是字典或者陣列,列表也必須是list或者陣列)

adidas = pd.dataframe(np.array(rows), columns=list(cols[0]))

charset必須和之前資料庫儲存一致,否則中文會出現亂碼

簡單說2句:host指的是主機名

user使用者名稱

passwd密碼

db 資料庫名

rows獲取的是資料庫中tables的資料行,但是儲存的是元組tuple,如若要構造成dataframe,需轉化為陣列或者字典

cols列表中第乙個元組儲存的是資料庫中tables的列名,如若要構造成dataframe,需要轉化為list或陣列

詳細可參考dataframe的用法

看了上述**感覺每次匯入乙個資料庫好繁瑣,下面給出乙個精簡版。**中的try---except如不需要,也可自行刪除

import

pandas.io.sql as sql

import

pymysql

try:

conn = pymysql.connect(host='

localhost

', user='

root

', passwd='

123456

', db='

adidas

', charset='

utf8')

adidas = sql.read_sql('

select * from jd_comment

', conn)#

將資料庫讀入dataframe

conn.close()

except

pymysql.error as e:

print('

mysql error %d: %s

' %(e.args[0], e.args[1]))

py之資料庫操作

import pymysql1.連線資料庫 host user passwd charset conn pymysql.connect host localhost user root password redhat db westos charset utf8 2.建立游標物件 cur conn....

PY3 內建資料結構 8 解構與封裝

解構的理解與用法 解構是python很有特色的乙個功能,被很多語言借鑑 例如es6 元素按照順序賦值給變數in 31 lst list range 5 in 32 head,mid,tail lst in 33 print head,tail 0 4in 34 print mid 1,2,3 變數和...

py3相對import和mock的問題之二

本文主要用於記錄問題,很難解決您的實際問題,見諒!測試用例結構 簡單介紹一下,a檔案是非py服務 用了一些莫名其妙的模組 b依賴於a,因此我在測試b中的 需要將a進行隔離。在core 中用裝飾器的方式,將a模組隔離 from import a這種寫法,在sys.modules中就是test.a的形式...