使用Python的adodbapi读取sas7bdat文件

2024-04-26 23:21:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将sas7bdat文件从SAS(SAS研究所的产品)读入Python。在

是的,我知道我们可以导出到*.csv文件,但我尽量避免这样做,因为那样会使我们需要创建的文件数量增加一倍。在

在visualbasic中有很好的文档可以实现这一点。不过,我还是想用Python编写。例如,在VB中你可以写。。。在

Dim cn as ADODB.Connection
Dim rs as ADODB.Recordset

obConnection.Provider = "sas.LocalProvider"
obConnection.Properties("Data Source") = "c:\MySasData"
obConnection.Open

rs.Open "work.a", cn, adOpenStatic, adLockReadOnly, adCmdTableDirect

打开数据集。在

但我不能用python破解这个问题。在

我会打字。。。在

^{pr2}$

a可以得到一个光标。。。在

cur = cn.cur()

但除此之外,我也被难住了。我确实找到了当前卢比,听起来像是记录集,但它是一个类型为“无”的对象。在

另外,为了抢占一些替代方法。。。在

  1. 我不想在SAS中创建*.csv文件。在
  2. 安装Python的计算机没有安装SAS,但是安装了oledb的提供程序。我知道一个事实,我提供的VB代码在没有SAS的只读模式下工作。你可以在这里下载这些驱动程序:http://support.sas.com/downloads/browse.htm?cat=64
  3. 我不是SAS专家。老实说,我发现他们的工具笨重,文档混乱,速度慢。我注意到还有一些其他产品被列为“IOMProvider”和“SAS/SHARE”。如果有一种更简单的方法使用这些ADO提供程序来实现,请随时记录它。然而,我真正想要的是一种完全在Python中使用相对简单的代码来实现这一点的方法。在
  4. 噢,我知道Python的sas7bdat包,但我们使用的是python3.3.5,它似乎不兼容。另外,我也不知道如何在2.7上使用它,因为没有太多的文档,甚至还有一个关于如何使用这个工具的问题,直到今天,这个问题仍然没有答案。Python sas7bdat module usage

谢谢!在


Tags: 文件csv方法文档产品ascnvb
1条回答
网友
1楼 · 发布于 2024-04-26 23:21:25

没有用SAS测试它,因为我目前没有安装提供程序,它应该是这样的:

cn = adodbapi.connect(cnstr)

# print table names in current db
for table in cn.get_table_names():
    print(table)

with cn.cursor() as c:
    #run an SQL statement on the cursor
    sql = 'select * from your_table'

    c.execute(sql)

    #get the results
    db = c.fetchmany(5)

    #print them
    for rec in db:
        print(rec)

cn.close()

编辑: 刚刚找到这个http://support.sas.com/kb/30/795.html,所以您可能需要为这个方法使用其他提供程序,请查看IOM privoder(https://www.connectionstrings.com/sas-iom-provider/http://support.sas.com/documentation/tools/oledb/gs_iom_tasks.htm

相关问题 更多 >