在sql-server连接器中,adodbapi是唯一在我的环境中工作的连接器。
import adodbapi
conn = adodbapi.connect("PROVIDER=SQLOLEDB;Data Source={0};Database={1}; \
UID={2};PWD={3};".format(server,db,user,pwd))
cursor = conn.cursor()
query_list = [row for row in cursor]
type(query_list[0]) = adodbapi.apibase.SQLrow如何将这份清单转换成熊猫df?
谢谢
发布于 2019-06-05 17:46:29
我就是这样做的:
import adodbapi as ado
import numpy as np
import pandas as pd
def get_df(data):
ar = np.array(data.ado_results) # turn ado results into a numpy array
df = pd.DataFrame(ar).transpose() # create a dataframe from the array
df.columns = data.columnNames.keys() # set column names
return df
with ado.connect('yourconnectionstring') as con:
with con.cursor() as cur:
sql_str = 'yourquery'
cur.execute(sql_str)
data = cur.fetchall()
df = get_df(data)发布于 2019-05-10 10:11:24
这可能有助于:
将熊猫作为pd导入
.......
ur_statements
.......
query_list = [row for row in cursor]
df = pd.DataFrame({'col':query_list })
print (df)发布于 2019-09-17 19:40:17
考虑一下熊猫的read_sql直接查询数据库。但目前,您将收到一个错误:
KeyError:'_typ‘
但是,由于@TomAubrunner在这个Github票上有一个可以工作的修复程序,这似乎是adodbapi中的一个bug。
adodpapi:print(adodbapi.__file__)的位置apibase.pyreturn self._getValue(self.rows.columnNames[name.lower()])并替换为下面的try/execpt块:
try:返回self._getValue(self.rows.columnNamesname.lower())除外:返回False一旦完成,只需像运行任何DB熊猫连接一样运行,即使使用qmark参数:
import pandas as pd
import adodbapi
conn = adodbapi.connect("PROVIDER=SQLOLEDB;Data Source={0};Database={1}; \
UID={2};PWD={3};".format(server,db,user,pwd))
# WITHOUT PARAMS
df = pd.read_sql("SELECT * FROM myTable", conn)
# WITH PARAMS
df = pd.read_sql("SELECT * FROM myTable WHERE [Col]= ?", conn, params=['myValue'])
conn.close()https://stackoverflow.com/questions/56075159
复制相似问题