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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM