第一次运行时出现 TypeError: 'NoneType' object is not iterable

问题描述 投票:0回答:0

我正在尝试使用 pyodbc 从 Synapse 查询数据,并使用 pandas.read_sql 由 pandas 读取数据 当我第一次跑步时,我得到了

文件“C:****\lib\site-packages\pandas\io\sql.py”,第 2117 行,在 read_query 中 columns = [col_desc[0] for col_desc in cursor.description] TypeError: 'NoneType' 对象不可迭代

但是当我再次运行它时它会完全运行或者当我在数据库工具中查询时它也返回数据

#Connection String to Azure Synapse
def to_synapse():

    server = 'xxxx'
    database = xxxx
    username = xxxx
    password = xxxxx
    driver= '{ODBC Driver 17 for SQL Server}'

    connection_string = 'DRIVER='+driver+';MARS_Connection=yes;SERVER=tcp:'+server+';PORT=xxxx;DATABASE='+database+';UID='+username+';PWD='+ password
    
    conn = pyodbc.connect(connection_string)
    return conn

def get_users_df_from_syn():
    exe_query = "SELECT * from something"
        df = pd.read_sql(exe_query, __pgdb)
    return df

我尝试添加 while 循环,如果数据框为空,它将在 10 秒内再次运行 但它不起作用 我也尝试了 stackoverflow 中的解决方案,它看起来没有解决我的问题 我该如何解决?

python pandas pyodbc azure-synapse
© www.soinside.com 2019 - 2024. All rights reserved.