【发布时间】:2019-02-14 21:19:42
【问题描述】:
CSV 文件的 python 列表必须从 pyodbc 加载到 Access 中。我不明白如何编写 SQL 字符串来容纳变量,而不是显式定义 INTO TABLE 和 FROM CSV 文件。
单个 CSV 的功能齐全的 SQL 语句如下所示:
strSQL = "SELECT * INTO [TableName] FROM
[text;HDR=Yes;FMT=Delimited(,);" +
"Database=C:\Path\To\Folder].first.csv;"
能否修改此语句以适应表示要导入的 CSV 的变量(即 INTO [TableName] 和 FROM 数据库)?
我知道它是类似这样的某种形式:
strSQL ="SELECT * INTO ? FROM Database=?",[csv_string, csv]
但是引用数据库的复杂 FROM 语句让我摸不着头脑。
# DATABASE CONNECTION
access_path = "C:\Path\To\Access\\DB.mdb"
con = pyodbc.connect("DRIVER={{Microsoft Access Driver
(*.mdb,*.accdb)}};DBQ={};".format(access_path))
for csv in csv_list:
# RUN QUERY
strSQL = "SELECT * INTO [TableName] FROM
[text;HDR=Yes;FMT=Delimited(,);" +
"Database=C:\Path\To\Folder].first.csv;"
cur = con.cursor()
cur.execute(strSQL)
con.commit()
con.close()
【问题讨论】: