我在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()
答案 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)
使用正斜杠(/)代替反斜杠