Как сохранить каждый результирующий набор из хранимой процедуры sql в отдельный фрейм данных - PullRequest
0 голосов
/ 27 сентября 2019

Должен сказать, что я новичок в питоне.

У меня есть хранимая процедура SQL, которая возвращает две таблицы.

Как сохранить каждую таблицу в отдельном фрейме данных: что-то вроде

df1 = первая таблица

df2 = вторая таблица

Приведенный ниже код возвращает один фрейм данныхс двумя таблицами, как я могу изменить код и вернуть два кадра данных?

Благодаря @GordThompson я смог получить один кадр данных с двумя таблицами (выходными данными)

Теперь вместоцикл, как-то мне просто нужно создать df1, а затем вызвать nextset().Затем создайте df2 и позвоните nextset() и т. Д.

Но я не могу понять, где разместить правильный код для достижения этой цели.Пожалуйста, помогите.

import pandas as pd 
import pyodbc 
from datetime import datetime

myparam = datetime.strptime('Jul 31 2019  1:33PM', '%b %d %Y %I:%M%p')
query = "{call [dbo].PythonTest_USIC_TreatyYear_ReportingPackage(?)}"
conn = pyodbc.connect('DRIVER={SQL Server};server=myserver;DATABASE=mydb;Trusted_Connection=yes;')
data_frames = []
cursor = conn.cursor()
cursor.execute(query, myparam)
result = cursor.fetchall()
#print(result)
while result:
    col_names = [x[0] for x in cursor.description] # this gives a tuple of tuples where where [0] for each is the column header
    data = [tuple(x) for x in result] # convert pyodbs.Row objects to tuples
    data_frames.append(pd.DataFrame(data, columns=col_names))
    if cursor.nextset()==True:
        result = cursor.fetchall()
    else:
        result = None


for df in data_frames:  #looping through data_frames
    print(df)
    print()

cursor.close()
conn.close()

enter image description here

...