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 CONNECTIONaccess_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()
1 回答
心有法竹
TA贡献1866条经验 获得超5个赞
你为什么.format()不像上面那样使用?
您可以执行以下操作:
table = "TableName"
database = "C:\Path\To\Folder"
strSQL = """
SELECT * INTO [{}] FROM
[text;HDR=Yes;FMT=Delimited(,);
{}].first.csv;
""".format(table, database)
或者您可以使用以下格式:
strSQL = f"SELECT * INTO [{table}] FROM [text;HDR=Yes;FMT=Delimited(,);{database}].first.csv;"
添加回答
举报
0/150
提交
取消