我有一个调用python脚本的groovy代码。有没有办法读取python脚本打印/返回的json序列化数据?你知道吗
调用python脚本的Groovy代码:
def sout = new StringBuilder(), serr = new StringBuilder()
def cmd = ["python2.7","myscript.py"]
def proc = cmd.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitFor()
def parser = new JsonSlurper()
def jsonResp = parser.parseText(sout[0])
log.debug(jsonResp)
Python脚本:
dd = {'key1': 'value1',
'key2':'value2',
'key3': {'key31':'value31'}
}
print json.dumps(dd)
输出:
jsonResp = {}
当代码运行时。你知道吗
jsonResp['key1']
也为空,表示没有从进程输出读取json。你知道吗
您可能正在寻找:
在groovy脚本中,
def jsonResp = parser.parseText(sout[0])
使用java.lang.StringBuilder
作为Array list
。这就像String []
。所以您正在加载total string中字符串sout[0]
的第一个字符"{"
。你知道吗JsonSlurper().parseText
只允许String
参数参见doc。您可以按以下方式使用它:parseText(sout.toString())
parseText(sout.readLines())
相关问题 更多 >
编程相关推荐