2016-02-26 91 views
1

我有一个创建了SAS存储过程,也可以通过SAS管理控制台来创建Web服务一样,提取SAS存储过程Web服务,并将其存储在数据帧

我想通过Python在Web服务中执行该存储过程,并希望将存储过程生成的数据集存储在Python中的数据框中。

我真的很感激,如果我可以,这个过程是可能的,如果是的话,我应该如何继续下去。

+1

不知道这是可能的或没有。熊猫可以阅读xport和sas7bdat,但http://pandas-docs.github.io/pandas-docs-travis/io.html#io-sas-reader – JohnE

+0

@JohnE +1很高兴知道熊猫可以处理xport和sas7bdat –

+0

@Jinsi你在什么SAS版本? –

回答

1

我不知道很多关于蟒蛇但现在看来,有可能在JSON格式接收数据(见Python - Parsing JSON Data Set

没有可用于SAS一个免费的工具,可以很容易地在JSON发送数据集格式(它建立在与javascript对话的基础上,但在你的情况下也应该如此)。该.sas文件可以在这里下载 - 地方https://github.com/Boemska/h54s/blob/master/sasautos/h54s.sas

保存上述文件中的SASApp服务器(例如/ SASEnvironment/SASCode /程序)和代码如下:

/* this part compiles the json macros */ 
%inc "SASEnvironment/SASCode/Programs/h54s.sas"; 

/* this part is for producing your dataset in SAS */ 
data work.YOURDATASET; 
    set sashelp.class; 
run; 

/* this part sends your dataset as JSON via _webout */ 
%hfsHeader; /* sets up json */ 
%hfsOutDataset(jsonLabel,WORK, YOURDATASET); /* sends data */ 
%hfsFooter; /* finishes up json with some audit, eg userid, datetime etc */ 

从上面可以响应直接在浏览器中查看,这应该有助于构建相关的python“数据框架”。

如果你是9.4,它变得更容易(无需第三方工具):如果

data work.YOURDATASET; 
    set sashelp.class; 
run; 

proc json out=_webout pretty nosastags; 
    export work.YOURDATASET; 
run; 
+0

良好的声誉,但如果用户在9.3M2或9.4上,SAS提供的PROC JSON可以完成这项工作,而无需依赖第三方宏。 –

+0

我们的平台是9.03.01M2P081512,并且proc json不可用。但是,这是一个很好的观点,回答更新。 –

相关问题