在无SPSS许可证的情况下,如何从Python、Java(groovy/grails)或C++应用访问SPSS数据?
我在网上搜索时发现的信息有些混乱。我需要解析一个SPSS的.sav文件,以了解数据的结构并提取调查结果。第一步是读取数据的“模式”。比如,我需要知道问题是什么,以及允许的回答类型。我打算把这些数据建模到我自己的SQL表中,这样就可以根据我应用的需求来处理数据。第二步是把参与者的答案填充到我的数据模型中。我查看了SPSS的sav文件,认为里面有我需要的两种数据。
如果不必要的话,我不想使用昂贵的SPSS软件。我们不会对这些数据进行统计,只是根据回答的筛选条件选择部分参与者。SPSS文件将由一个拥有SPSS授权的合作公司提供。我不需要把任何数据再放回SPSS;我的使用场景是只读的。
我可以使用Python、Java(无论有没有Groovy)或者C/C++来编写解析程序。这个程序只会在数据收集结束时运行一次,所以性能并不是特别重要。理想情况下,我希望我的代码能够跨平台,这样我可以在Mac上开发,然后部署到Linux上,但如果必须的话,我也可以使用Windows。
我找到的很多资料要么是2004年的Java类,要么是现代的Python代码,但需要IBM的DLL,并且只适用于Windows。根据我对需求的简单说明,我希望能得到SO社区的推荐。我觉得我的需求很简单,但还没有找到我所希望的解决方案。一个开源的库是最理想的,但我也愿意为一个简单的商业解决方案支付合理的价格。
3 个回答
这里有一个Java库:
你可以免费获取SPSS的输入输出模块和详细的文档,这样你就可以自己开发一个应用程序来读取(或写入)sav文件。这些模块适用于所有SPSS Statistics支持的平台。
你可以访问SPSS社区网站,网址是http://www.ibm.com/developerworks/spssdevcentral,然后找到SPSS下载的链接。注册是免费的。
SAV文件是一种二进制格式,里面有很多复杂的结构,所以使用输入输出模块会更好。而且如果SAV文件添加了新功能(这种情况经常发生),输入输出模块也会同时更新,这样你的代码就不会过时了。
希望这对你有帮助,
Jon Peck