[英]How to write python sql output into CSV using a dataframe
导入模块
import pyodbc
import pandas as pd
import csv
创建与MICROSOFT SQL Server的连接
msconn = pyodbc.connect(driver='{SQL Server}',
server='SERVER',
database='DATABASE',
trusted_msconnection='yes')
cursor = msconn.cursor()
创建包含SQL语句的变量
SCRIPT = "SELECT * FROM TABLE"
打印数据
cursor.execute(SCRIPT)
cursor.commit
for row in cursor:
print (row)
将所有带有列名的行写入CSV ---需要帮助
由于熊猫支持直接从RDBMS导入,名称为read_sql,因此您无需手动编写。
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('mssql+pyodbc://user:pass@mydsn')
df = pd.read_sql(sql='SELECT * FROM ...', con=engine)
来自odo docs
将CSV文件加载到数据库中已解决。 这个问题已经很好地解决了。 与其每次都需要滚动自己的加载器并浪费计算资源,不如在选择的数据库中使用本机加载器。
反之亦然。
from odo import odo
odo('mssql+pyodbc://user:pass@mydsn::tablename','myfile.csv')
@ e4c5的答案很棒,因为它比for loop + cursor
要快-我会使用保存结果设置为CSV来扩展它:
...
pd.read_sql(sql='SELECT * FROM TABLE', con=msconn) \
.to_csv('/path/to/file.csv', index=False)
如果要读取所有行(不指定WHERE
子句):
pd.read_sql_table('TABLE', con=msconn).to_csv('/path/to/file.csv', index=False)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.