我试图将SAS(SAS Institute的产品)中的sas7bdat文件读入Python。
是的,我知道我们可以导出到* .csv文件,但我试图避免这种情况,因为这会使我们需要创建的文件数量增加一倍。
在Visual Basic中执行此操作有很好的文档。不过,我想在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中运行。
我可以输入......
import adodbapi
cnstr = 'Provider=sas.LocalProvider;c:\\MySasData'
cn = adodbap.connect(cnstr)
一个人可以得到一个光标......
cur = cn.cur()
但除此之外,我很难过。我找到了一个cur.rs,听起来像一个记录集,但它是一个类型为None的对象。
另外,要抢占一些替代方法......
谢谢!
答案 0 :(得分:0)
没有使用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)