python - 导出或写入excel ms SQL server QUERY

时间:2017-05-01 17:58:01

标签: sql-server excel python-3.x export-to-excel

我在sql server中有一个名为zd的数据库和一个名为user_tab_columns的表。我想批量导出或写入excel查询语句的结果。我试图从不同来源模仿的代码最终给了我错误消息。

在数据库zd和表user_tab_columns中,字段如下: ValueError with Pandas - shaped of passed values

以下是我的代码示例: {{3}}

  

错误消息SyntaxError :( unicode error)' unicodeescape'编解码器无法解码位置2-3中的字节:截断\ UXXXXXXXX转义

import pyodbc
import pandas as pd
import os

cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
                              "Server=DPC;"
                               "Database=zD;"
                               "trusted_connection=yes;")

cursor = cnxn.cursor()
script = """
SELECT * 
FROM user_tab_columns
WHERE table_name = "A"
"""

cursor.execute(script)

columns = [desc[0] for desc in cursor.description]
data = cursor.fetchall()
df = pd.DataFrame(list(data), columns=columns)

writer = pd.ExcelWriter('C:\Users\PROGRAMs\TEST\export.xlsx')
df.to_excel(writer, sheet_name ='bar')
writer.save()

2 个答案:

答案 0 :(得分:1)

我会用熊猫'内置.read_sql()。另外,为了将"放在python中的字符串中,您需要使用'作为引号,而不是"

import pyodbc
import pandas as pd
import os

cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
                              "Server=DPC;"
                               "Database=zD;"
                               "trusted_connection=yes;")

cursor = cnxn.cursor()
script = """
SELECT * 
FROM user_tab_columns
WHERE table_name = 'A'
"""

df = pd.read_sql(script, cnxn)

writer = pd.ExcelWriter('C:\Users\PROGRAMs\TEST\export.xlsx')
df.to_excel(writer, sheet_name ='bar')
writer.save()

答案 1 :(得分:0)

使用正斜杠(/)代替反斜杠