1
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是键值数组。

我希望我在 datalist 中传递了正确的语法,myDict因为keyvalue[]它刚刚获得了键值对。

public Response event(KeyValue[] dataList)

我正在使用磨床工具从 jython 脚本调用 java 中的事件函数。

4

2 回答 2

1

您需要将字典转换为一系列键和值:

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可以定义为:

于 2012-09-11T09:22:53.693 回答
0

您需要显式传递myDict.items()而不是传递myDictKeyValue,传递myDict.keys()键或myDict.values()错误,传递值......

于 2012-09-11T09:11:20.727 回答