在Jythin 2D列表上排序

2024-05-14 17:56:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用WLST(python/jython)来获取一些WebLogic资源的配置。我在jms模块的队列中循环,并为每个队列恢复名称和其他一些参数。在

有了这些信息,我建立了一个2D列表,我想按queueName排序。在

虽然我可以通过以下两种方式在python控制台中成功地执行此操作:

from operator import itemgetter
L=[["queueName1", 1, 2], ["queueName2", 2, 3], ["queueName3", 4, 1]]
sorted(L, key=itemgetter(0))

或者

^{pr2}$

当我使用.py脚本时,我的WL服务器(版本10.3.5)中的python/jython版本(我不知道使用的是什么)不喜欢这样:

list2d.sort(key=lambda x: x[0])

我得到了一个错误:

Problem invoking WLST - Traceback (innermost last):
  File "/home/user/scripts/pythonscripts/get_jms_config.py", line 98, in ?
  File "/home/user/scripts/pythonscripts/get_jms_config.py", line 69, in getInfo
TypeError: sort() takes no keyword arguments

如果我尝试使用itemgetter,也没有更好的效果,因为我得到了以下错误:

Problem invoking WLST - Traceback (innermost last):
  File "/home/user/scripts/pythonscripts/get_jms_config.py", line 5, in ?
ImportError: cannot import name itemgetter

有人有什么建议吗?在

编辑时间:

def getQueueInformation():
    try:
        list2d = []
        j = 1
        jmsSystemResources = cmo.getJMSSystemResources();
        for jmsSystemResource in jmsSystemResources:
            queues = jmsSystemResource.getJMSResource().getQueues();
            for queue in queues:
                # print some information
                row = []
                row.append(queue.getName())
                row.append(str(queue.getDeliveryParamsOverrides().getRedeliveryDelay()))
                row.append(str(queue.getDeliveryFailureParams().getRedeliveryLimit()))

                list2d.append(row)
                j += 1 
        return list2d
    except WLSTException:
        print 'an error occurred...',

谨致问候, 黛博拉


Tags: inpyhomegetqueuescriptsfilerow
1条回答
网友
1楼 · 发布于 2024-05-14 17:56:54

听起来您运行的是Python 2.4之前的版本,也就是引入^{}的时候。您可以尝试使用^{}版本的^{}

list2d.sort(lambda left, right: cmp(left[0], right[0]))

相关问题 更多 >

    热门问题