如何用SASPy将库中表名转为字符串列表?sasdata()方法失效
解决SASPy获取指定SAS库表名列表的问题
如果sasdata()的list_tables()方法无法正常使用,可以试试以下两种替代方案:
方案一:直接调用SASsession的list_tables方法
这是SASPy提供的简化接口,直接通过已建立的SAS会话对象获取表名,返回结果就是字符串列表:
sas = saspy.SASsession() # 替换library_name为你的目标SAS库名 tables = sas.list_tables(library=library_name) # 遍历打印验证 for table in tables: print(table)
方案二:通过SAS字典表查询(兼容性更强)
如果方案一仍有问题,可直接提交SAS代码查询系统字典表dictionary.tables,再读取结果转换为列表:
sas = saspy.SASsession() library_name = "你的库名" # 替换为实际库名 # 提交SAS代码查询指定库的表名 sas.submit(f""" proc sql; select memname into :table_list separated by ' ' from dictionary.tables where libname = upcase('{library_name}'); quit; """) # 读取SAS宏变量中的表名,分割为字符串列表 tables = sas.symget('table_list').split() # 输出结果 for table in tables: print(table)
内容的提问来源于stack exchange,提问作者Burak
相关产品推荐
相关产品推荐

