1. 程式人生 > 實用技巧 >python讀取資料庫

python讀取資料庫

一、access

1、獲取表

http://blog.sina.com.cn/s/blog_92ab5a530102wjxe.html

參考這個連結。我把操作錄製下來如下所示

import pypyodbc
import time
filepath = r'C:\Users\zzc\Desktop\ScreenToGif\Asset.mdb'
# 連線mdb檔案
connStr = (r'Driver={Microsoft Access Driver (*.mdb)};DBQ='+filepath+';'
           )
conn = pypyodbc.win_connect_mdb(connStr)

# connStr = ( # r'Driver={SQL Sever};' # r'Server=sqlserver;' # r'Database=bill;' # r'UID=sa;' # r'PWD=passwd' # ) # # conn = pypyodbc.connect(connStr) # 建立遊標 cur = conn.cursor() cur.execute('SELECT * FROM MSysObjects WHERE Flags=0 AND Type=1') #獲得第一個表的表名,為何是-6通過輸出檢視的 table_name = cur.fetchall()[0][-6]
print(table_name) if conn: #無論如何,連線記得關閉 conn.close()

2、獲取指定表的內容

這裡的表名要根據上一節程式獲得,然後代入。同時用pandas儲存資料並儲存到csv檔案中去。

import pypyodbc
import time
import pandas as pd
import numpy as np
filepath = r'C:\Users\zzc\Desktop\ScreenToGif\Asset.mdb'
to_filepath = r'C:\Users\zzc\Desktop\ScreenToGif\a.csv
' # 連線mdb檔案 connStr = (r'Driver={Microsoft Access Driver (*.mdb)};DBQ='+filepath+';' r'Database=Asset2' ) conn = pypyodbc.win_connect_mdb(connStr) # connStr = ( # r'Driver={SQL Sever};' # r'Server=sqlserver;' # r'Database=bill;' # r'UID=sa;' # r'PWD=passwd' # ) # # conn = pypyodbc.connect(connStr) # 建立遊標 cur = conn.cursor() cur.execute('SELECT * FROM Asset2') #獲取第一條資料,返回他的長度,也就是欄位長度了 columns_len = len(cur.fetchone()) #建立pandas,列數量就是上面欄位數量 df = pd.DataFrame(columns=range(columns_len)) index = 0 for row in cur.fetchall(): # temp用來儲存每一行的資料 temp = [] for columns in range(columns_len): temp.append(row[columns]) df.loc[index] = temp index+=1 #print(df) df.to_csv(to_filepath) if conn: #無論如何,連線記得關閉 conn.close()