python调用jar字典类型_在python中将java程序作为子进程调用时,如何传递字典?...

在Python中调用Java的jar程序时,原始方法通过字符串传递参数。现在需求是将字典作为输入参数传递。代码示例展示了如何使用`Popen`创建子进程并尝试将字典转换为可接受的格式传递给Java应用,但具体实现字典到Java兼容格式的转换未详细说明。
摘要由CSDN通过智能技术生成

我试图使用python调用javajar程序,当我将输入参数作为字符串传递时,它可以正常工作,现在我需要将dictionary作为输入参数传递。在

代码如下:

Python:class ExecuteKTR():

def GET(self,r):

web.header('Access-Control-Allow-Origin','*')

web.header('Access-Control-Allow-Credentials', 'true')

secToken = web.input().SecurityToken

Domain = web.input().Domain

fieldnames = ast.literal_eval(web.input().fieldnames)

authResult = Auth.GetSession(secToken,Domain)

if authResult.reason == "OK":

args = ['ktrjob.jar', 'arg1', 'arg2', 'argN'] # Any number of args to be passed to the jar file

result = jarWrapper(*args)

print result

elif authResult.reason == 'Unauthorized':

result = comm.format_response(False,authResult.reason,"Check the custom message",exception=None)

return result

def jarWrapper(*args):

process = Popen(['java', '-jar']+list(args), stdout=PIPE, stderr=PIPE)

ret = []

while process.poll() is None:

line = process.stdout.readline()

print line

if line != '' and line.endswith('\n'):

ret.append(line[:-1])

stdout, stderr = process.communicate()

ret += stdout.split('\n')

if stderr != '':

ret += stderr.split('\n')

ret.remove('')

return ret

Java:

^{pr2}$

我需要将字典作为参数传递给java应用程序。第一个例子是{DateTime:12/03/2016,DealerName:'Test'}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值