我一直致力于STAF&STAX。我的目标是使用STAF&STAX返回测试用例PASS或FAIL。我尝试用最新的python版本将staf更新到最新版本。
Python版本详细信息
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.)]
这是我的代码:
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'
它给出了下面给出的错误
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:STAFservicesstaxsamplesnew13.xml, Machine: local://local)
sequence: 1/2 (Line: 14, File: C:STAFservicesstaxsamplesnew13.xml, Machine: local://local)
]
在STAF模块中包含JSON的过程是什么。
STAX使用Jython(用Java编写的Python版本(而不是Python来执行STAX作业中元素内的代码。正如我所说,我使用的是STAX的最新版本v3.5.4,然后它提供了一个嵌入式Jython 2.5.2(它实现了与Python 2.5相同的一组语言功能(来执行元素中的代码。
注意:Jython 2.5.2不包括simplejson,因为simplejson包含在Python 2.6或更高版本中。
《STAX用户指南》中的附录F:"Jython和CPython的差异"谈到了Jython与Python(又名CPython(之间的一些差异。在系统中安装Python2.7或更高版本不会影响STAX使用Jython2.5.2在STAX作业中的元素内执行代码的事实。但是,"simplejson可以通过Jython运行。">我在STAX作业中将包含simplejson模块的目录添加到sys.path中,然后导入simplejson
例如:
<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>
或者,如果您想使用系统上安装的Python 2.7或更高版本(包括simplejson(,您可以使用**元素通过STAX作业运行Python脚本(使用json(。
例如,使用Python 2.7(如果安装在C:\Python2.7中(在C:\tests中运行名为YourPython script.py的Python脚本。
<process>
<location>'local'</location>
<command mode="'shell'">'C:/Python2.7/bin/python.exe YourPythonScript.py'</command>
<workdir>'C:/tests'</workdir>
</process>
我对STAF/STAX知之甚少。但根据错误的说法,simplejson
模块似乎不可用。将导入行重写如下:
try:
import simplejson as json
except ImportError:
import json
如果导入失败,您可以回退到json
模块(Python 2.6+(。