L'article de l'ancêtre suffit, mais pour moi. Aussi, je me souviens que les données provenaient de Sports Data Analysis Competition et Access, j'espère donc que cela aidera les participants.
https://qiita.com/taro373/items/619e3385087279f72279
--Windows 10 1909 version 64 bits --Access 365 2002 Édition 32 bits
pip
de la version fournie avec AnacondaTéléchargez et installez «Microsoft Access Database Engine 2010 Redistributable Components» https://www.microsoft.com/ja-jp/download/details.aspx?id=13255
Une base de données constituée uniquement d'une table nommée T_1
avec le contenu suivant
ID | field1 |
---|---|
1 | Valeur de test |
test.py
import pandas as pd
import pyodbc
#Liste des pilotes ODBC sur le PC
print(pyodbc.drivers())
print()
#Chaîne de caractères utilisée pour la connexion DB
#Dans la chaîne de caractères "{}"Et"\, Il est donc préférable d'utiliser une chaîne de caractères brute
conn_str = (
r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; ' +
r'DBQ=(Nom du lecteur):\(Nom de dossier)\ ~ \nom de fichier.accdb;'
)
#Utiliser avec l'instruction pour ouvrir et fermer la base de données en toute sécurité
with pyodbc.connect(conn_str) as conn:
#Lors de l'utilisation de DataFrame
print('*Lors de l'utilisation de DataFrame')
df = pd.io.sql.read_sql(r'select * from T_1', conn)
print(df)
print()
print('*Lors de l'utilisation d'un curseur')
with conn.cursor() as cur:
#À propos de chaque table
for table_info in cur.tables(tableType='TABLE'):
#Afficher le contenu avec l'instruction de sélection
#Si vous souhaitez utiliser à la fois une chaîne brute et une notation f, "rf''À
cur.execute(rf'select * from {table_info.table_name}')
for row in cur.fetchall():
print(row)
['SQL Server', 'SQL Server Native Client 11.0', 'Microsoft Access Driver (*.mdb, *.accdb)', 'Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)', 'Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)', 'Microsoft Access Text Driver (*.txt, *.csv)']
*Lors de l'utilisation de DataFrame
ID field1
0 1 Valeur de test
*Lors de l'utilisation d'un curseur
(1, 'Valeur de test')
c'est tout.
Recommended Posts