myDict = {'itemkey1':'itemvalue1', 'itemkey2':'itemkey2','itemkey3':'itemvalue3','itemkey4':'itemvalue4'};
event = portTest.event(myDict);
我收到以下错误
Aborted run: Jython exception: TypeError:arg can't be coerced to java.util.List
myDict
是键值的数组。
我希望我myDict
为数据列表传递正确的语法keyvalue[]
因为它刚刚获得了键值对。
public Response event(KeyValue[] dataList)
我正在使用研磨工具从 jython 脚本调用 java 中的事件函数。
您需要将字典转换为一系列键和值:
def chainDict(mapping):
items = []
for item in mapping.iteritems():
items.extend(item)
return items
event = portTest.event(chainDict(myDict))
这会将[keyFoo, valueFoo keyBar, valueBar]
列表传递给 event
方法,其中键和值是配对的,但顺序任意。
如果没有可用的itertools
模块,可以将chain
定义为:
显式传递myDict.items()
而不是myDict
KeyValue
对,myDict.keys()
键,或myDict.values()
错误,值...