Я новичок в Python, и мне было поручено загрузить данные из разных баз данных (MS SQl и Teradata).Логика моего кода такова: 1: код получает данные для продавца из файла Excel.2: Из этого списка он проходит по всем поставщикам и выдает список документов.3: Затем я использую список, загруженный на шаге 2, для загрузки данных из teradata и добавления в окончательный набор данных.
Мой вопрос: если данные на втором шаге пустые, цикл while будет бесконечным.Можно ли как-нибудь завершить выполнение оставшейся части итерации?
import pyodbc
import pandas as pd
VendNum = pd.ExcelFile(r"C:\desktop\VendorNumber.xlsx").parse('Sheet3',
dtype=str)
VendNum['Vend_Num'] = VendNum['Vend_Num'].astype(str).str.pad(10,
side='left', fillchar='0')
fDataSet = pd.DataFrame()
MSSQLconn=pyodbc.connect(r'Driver={SQL Server Native Client
11.0};Server=Servername;Database=DBName;Trusted_Connection=yes;')
TDconn = pyodbc.connect
(r"DSN=Teradata;DBCNAME=DBname;UID=User;PWD=password;",autocommit =True)
for index, row in VendNum.iterrows():
DocNum = pd.DataFrame()
if index > len(VendNum["Vend_Num"]):
break
while DocNum.size == 0:
print("Read SQL " + row["Vend_Num"])
DocNum = pd.read_sql_query("select Col1 from Table11 where
Col2 = " + "'" + row["Vend_Num"] + "'" + " and Col3 =
'ABC'",MSSQLconn)
print("Execute SQL " + row["Vend_Num"])
if DocNum.size > 0:
print(row["Vend_Num"])
dataList = ""
dfToList = DocNum['Col1'].tolist()
for i in dfToList:
dataList += "'"+i+ "'" + ","
dataList=dataList[0:-1]
DataSet= pd.read_sql("
Some SQl statement which works fine "),TDconn)
fDataSet = fDataSet.append(DataSet)
MSSQLconn.close()
TDconn.close()
Ожидаемый результат - добавлять fDataset к каждой итерации кода, но когда в цикле while присутствует пустой Dataframe (с именем DataSet)не выходит.