Python 自动化IBM SPSS数据收集调查导出?

Python 自动化IBM SPSS数据收集调查导出?,python,sql-server,spss,Python,Sql Server,Spss,对于这里的模糊问题,我很抱歉,但我希望SPSS专家能够在这里帮助我。我们有一些调查是通过SPSS完成的,从中我们为内部报告提取数据。现在这个过程非常麻烦,需要转到SPSS数据收集访问服务器管理页面,手动导出两个不同项目的数据(一次需要几个小时!)。然后,我们获取数据,对其进行处理,并将其上传到另一个驱动内部报告的数据库 我的问题是,有人知道如何自动化这个过程吗?SPSS数据背后是否有SQL Server数据库?.mdd文件在哪里播放?我的团队(精通从各种来源提取数据)能否利用SPSS背后的SQL

对于这里的模糊问题,我很抱歉,但我希望SPSS专家能够在这里帮助我。我们有一些调查是通过SPSS完成的,从中我们为内部报告提取数据。现在这个过程非常麻烦,需要转到SPSS数据收集访问服务器管理页面,手动导出两个不同项目的数据(一次需要几个小时!)。然后,我们获取数据,对其进行处理,并将其上传到另一个驱动内部报告的数据库

我的问题是,有人知道如何自动化这个过程吗?SPSS数据背后是否有SQL Server数据库?.mdd文件在哪里播放?我的团队(精通从各种来源提取数据)能否利用SPSS背后的SQL Server数据库获取我们的数据?还是我们需要某种Python脚本和插件

如果我缺少有助于回答问题的信息,请告诉我。我很乐意提供它;我只是不知道该提供什么


非常感谢。

这不像直接使用任何保存数据的数据库那样干净,但您可以使用导出的数据集执行以下操作:

可能有也可能没有一种方法可以让您从管理面板或其他地方编写和运行导出脚本。如果没有,您可以使用SeleniumWebDriver编写一个简单的Python脚本,该脚本将登录到您的管理面板并将所有数据导出到*.sav数据文件中

然后,您可以使用Python SPSS扩展来编写分析脚本。请注意,这些脚本必须在安装了SPSS副本的计算机上运行


一旦Python可以访问数据和分析结果,您应该能够轻松地将其写入其他数据库。

有许多不同的方法可以轻松完成此任务,甚至可以完全自动化它。但是,如果您不是IBM SPSS数据收集专家,并且没有机会接触到IBM SPSS数据收集专家,或者没有时间成为IBM SPSS数据收集专家,我建议您与平台上提供服务的一些顾问联系。IBM内部没有很多熟练的SPSS资源,因此他们严重依赖外部合作伙伴为其许多产品提供服务。这尤其适用于IBMSPSS数据收集,但对于SPSS统计数据也基本如此

正如前面的贡献者所指出的,有一种方法使用Python进行数据清理、合并和其他转换,然后将输出加载到报表数据库中。出于维护原因,我可能不建议使用这种方法。虽然您最有可能使用简单的SPSS语法(和SPSS附加数据组件)将数据从SPSS数据收集自动导出到sav文件,但升级SPSS统计或SPSS数据收集时极易出错

从最佳实践的角度来看,您应该使用SPSS数据收集数据管理模块。它非常灵活,几乎不需要对升级进行任何维护,因为在将转换后的数据加载到报告数据库之前,您在同一数据模型框架内工作(例如,隐式处理调查元数据、调查版本、标签等)

理想情况下,方法是构建上述SPSS数据收集数据管理脚本,并在每次完成的访谈结束时触发该脚本。通过这种方式,您的报告将接近实时(您可以在采访期间使用采访脚本事件触发DM脚本,使其成为实际的实时报告-仅供参考)

SPSS数据采集平台上的所有脚本(包括数据管理脚本)都非常类似于VB,因此对于大多数了解VB的人来说,很容易入门,并且在SPSS数据采集DDL中有很好的文档记录。在这里,您还可以找到从SPSS数据收集调查中提取调查数据的示例(以及向/从其他数据库、文件等读取和写入数据)。还有许多数据操作和转换的例子

最后,回答您的具体问题:

  • 是的,SPSS数据收集背后始终有一个MS SQL Server-
    没有例外。然而,一般来说,数据模型是一种 直接从中读取数据非常复杂。如果你看一下, 你很快就会意识到这一点
  • MDD文件(元数据文档的缩写)包含所有调查元数据 数据包括数据源规范、版本历史记录等。 如果没有它,您将无法在中生成任何调查数据 数据库,这是我建议留在 SPSS数据收集平台用于处理大部分数据 尽可能的。然而,它实际上只是一个可读的XML文件
请注意,SPSS数据收集数据管理模块需要单独的许可证,如果所需的脚本较大或复杂,您可能也需要base professional,如果您在开发问卷和处理调查时没有使用base professional


希望能有所帮助。

正如其他撰稿人所提到的,有几种方法可以实现这一点。我建议最简单的方法是使用DMS(数据管理脚本)和windows调度程序。理想情况下,您应该遵循以下步骤

先决条件: 1.您应该可以访问运行IBM Data collection的服务器 2.windows任务调度器的基本知识 3.DMS脚本知识

方法: 1.从模板创建新的DMS脚本 2.如果只想执行数据提取/转换,则只需要输入和输出数据源 3.在输入数据源中,创建/构建指向IBM data collection server上的调查的连接字符串。将数据源用作SQL 4.在select查询中:如果要导出所有变量,请使用“select*from VDATA” 5.设置输出数据连接stri