为了账号安全,请及时绑定邮箱和手机立即绑定

从 CSV 列表中选择到表格中

从 CSV 列表中选择到表格中

拉莫斯之舞 2021-11-09 15:38:19
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;"



查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信