Я пытаюсь выполнить запрос sql по сценарию python. В таблице SQL нет записей, поэтому следует напечатать пустой фрейм данных, но он печатает что-то другое. Раньше я получал правильный результат, но вдруг он изменился, я не знаю, как это произошло. Можете ли вы помочь мне, как я могу получить результат?
Пример:
import pymysql.cursors
import pandas as pd
db = pymysql.connect(host=host,
user=user',
passwd=password,
db=database,
cursorclass=pymysql.cursors.DictCursor)
with db.cursor() as cur:
#query ='''select (Current_Count) as count from imedical_table_count where layer ='Refined' and Table_name = 'GRP';'''
query = "select * from imedical_table_count where Table_name='KOL_DESIGNATION' and layer='Refined'"
#query = '''select Current_Count as count from imedical_table_count where Table_name= 'KOL_DESIGNATION' and layer="Refined" and Recon_Date="2020-04-23"'''
#query = '''SELECT trim(CONCAT_WS('|',mtd.Master_Job_Name,Seq,Table_Name,Source_File_Name_Lnd,landingdfname,Target_Path,s3_tgt_path,query,mtd.Execution_Sequence)) from cde.imedical_master_metadata mtd inner join cde.imedical_master_metadata_query mtq on (mtd.Master_Job_Name=mtq.Master_Job_Name) where mtd.Is_Active='Y' order by mtd.Execution_Sequence'''
cur.execute(query)
res = cur.fetchall()
df = pd.DataFrame(res)
print(res)
print(df)
Это дает такой результат:
Empty DataFrame
Columns: []
Index: []
[Finished in 4.5s]
Ожидаемый результат:
Data Frame should print like this:
layer Table_name Data_set_name Previous_count
0 None None None None