python 我想将数据库(AdventureWorks2019)中的所有不同表导出为csv格式,作为同一路径中的表名

esyap4oy  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(140)

此代码用于一次将一个表从数据库导出为csv格式。

import pandas as pd
import pyodbc 

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=DESKTOP-0LA566U\SQLEXPRESS;'
                      'Database=AdventureWorksDW2019;'
                      'Trusted_Connection=yes;')
                

sql_query = pd.read_sql_query('''
                                select * from DimAccount'''
                              ,conn)
  

    
df = pd.DataFrame(sql_query)
df.to_csv (r'C:\Users\cdtpr\OneDrive\Desktop\connections\DimAccount.csv', index = False)

上面的代码是一次导出一个表为CSV格式。例如,我导出了DimAccount。所以我可以一次导出一个表,但我如何才能导出所有30个表一次作为表名。我想从AdventureWorks2019数据库导出所有30个表作为表名为CSV格式。请帮助我,我如何才能做到这一点。

yzuktlbb

yzuktlbb1#

首先,您应该使用以下查询获取所有表的名称:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

然后编写一个for循环并替换this代码中的表名

for table in tables:
    sql_query = pd.read_sql_query('''select * from {table}''',conn)
  
    df = pd.DataFrame(sql_query)
    df.to_csv (f'C:\Users\cdtpr\OneDrive\Desktop\connections\{table}.csv', index = False)

相关问题