首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在STAF/STAX中导入json

在STAF/STAX中导入json
EN

Stack Overflow用户
提问于 2013-04-08 06:08:53
回答 2查看 615关注 0票数 1

我一直在研究STAF & STAX。我的目标是使用STAF & STAX返回Testcase、、PASS、FAIL来读取JSON文件。我尝试用最新的python版本将staf更新为最新版本。

Python版本细节

代码语言:javascript
复制
20130408-15:38:19   
Python Version : 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06) 
[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)]

这是我的密码:

代码语言:javascript
复制
try:
      import simplejson as json
    except ImportError:
      import json
  title = [] 
  album = []
  slist = []
  json_data=open('d:\Json_File.txt')
  data = json.load(json_data)
  for i in range(data["result"].__len__()):
      title = data["result"][i]["Title"]
      album = data["result"][i]["Album"]
      slist = data["result"][i]["Title"] + ' [' + data["result"][i]["Album"] + '] \n'

它给出了下面的错误

代码语言:javascript
复制
20130408-11:32:26   STAXPythonEvaluationError signal raised. Terminating job. 
===== XML Information =====
File: new13.xml, Machine: local://local 
Line 15: Error in element type "script".

===== Python Error Information =====
com.ibm.staf.service.stax.STAXPythonEvaluationException: 
Traceback (most recent call last):
  File "<pyExec string>", line 1, in <module>
ImportError: No module named simplejson

===== Call Stack for STAX Thread 1 =====[
  function: main (Line: 7, File: C:\STAF\services\stax\samples\new13.xml, Machine: local://local)
  sequence: 1/2 (Line: 14, File: C:\STAF\services\stax\samples\new13.xml, Machine: local://local)
]

在STAF模块中包含JSON的过程是什么。

EN

回答 2

Stack Overflow用户

发布于 2013-04-09 05:05:26

STAX使用Jython (用Java编写的Python版本),而不是Python,在STAX作业中的元素中执行代码。正如我所说的,我使用了STAX的最新版本v3.5.4,然后它提供了一个嵌入式Jython 2.5.2 (它实现了与Python2.5相同的语言特性集)来在元素中执行代码。注释:PythonJython2.5.2不包含simplejson,因为simplejson包含在Python2.6或更高版本中。 附录F: "“STAX用户指南”中的Jython和CPython差异讨论了Jython和“STAX用户指南”中的Jython和CPython差异(又名CPython)之间的一些区别。在系统中安装Python2.7或更高版本不会对STAX使用Jython2.5.2在STAX作业中的元素内执行代码这一事实产生影响。然而,"simplejson可以通过Jython运行。“I将包含simplejson模块的目录添加到system作业中的sys.path中,然后导入simplejson。 例如:

代码语言:javascript
复制
<script> 
  myPythonDir = 'C:/simplejson'   

  import sys 
  pythonpath = sys.path 

  # Append myPythonDir to sys.path if not already present 
  if myPythonDir not in pythonpath: 
    sys.path.append(myPythonDir) 

  import simplejson as json 
</script> 

或者,如果您想使用安装在系统上的Python2.7或更高版本(包括simplejson),可以使用**元素通过STAX作业运行Python脚本(使用json)。 例如,使用Python2.7(如果安装在C:\Python2.7中)在C:\test中运行名为YourPythonScript.py的Python脚本。

代码语言:javascript
复制
<process> 
  <location>'local'</location> 
  <command mode="'shell'">'C:/Python2.7/bin/python.exe YourPythonScript.py'</command> 
  <workdir>'C:/tests'</workdir> 
</process> 
票数 1
EN

Stack Overflow用户

发布于 2013-04-08 06:35:06

我对斯塔夫/斯塔克斯一无所知。但是按照错误的说法,simplejson模块似乎是不可用的。将导入行重写如下:

代码语言:javascript
复制
try:
  import simplejson as json
except ImportError:
  import json

在导入失败的情况下,您可以回退到json模块(Python 2.6+)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15872359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档