繁体   English   中英

使用 for 和 if 循环创建嵌套字典

[英]Creating nested dictionaries using for and if loops

我正在创建嵌套字典。 有人可以帮忙吗?

for key,values in hostwise.iteritems():
    values.sort(key=lambda x: x.execution_time)
    for plugin in values:
        plugin_wise = {}
        if plugin.name not in plugin_wise.keys():
            plugin_wise[plugin.name] = {}
            if plugin.status == 'Submitplugin':
                plugin_wise[plugin.name]['Submitplugin'] = plugin.execution_time
            elif plugin.status == 'Pluginsucceeded':
                plugin_wise[plugin.name]['Pluginsucceeded'] = plugin.execution_time
        else:
            if plugin.status == 'Submitplugin':
                plugin_wise.update({plugin.name: {'Submitplugin': plugin.execution_time}})
                #plugin_wise[plugin.name]['Submitplugin'] = plugin.execution_time
            elif plugin.status == 'Pluginsucceeded':
                plugin_wise.update({plugin.name: {'Pluginsucceeded': plugin.execution_time}})
                #plugin_wise[plugin.name]['Pluginsucceeded'] = plugin.execution_time
{‘UpgradeOptional’: {‘Pluginsucceeded’: ‘2020-06-06T12:00:09’}}
{‘UpgradeOptional’: {‘Submitplugin’: ‘2020-06-06T12:00:03’}}

例如。 上面的 output 不是我所期望的......我想要下面的方式。 请问有什么想法吗?

{‘UpgradeOptional’: 
    {‘Pluginsucceeded’: ‘2020-06-06T12:00:09’,‘Submitplugin’: ‘2020-06-06T12:00:03’}}

尝试这个。

plugin_wise[plugin.name].update({'Submitplugin': plugin.execution_time})

plugin_wise[plugin.name].update({'Pluginsucceeded': plugin.execution_time})

我认为您注释掉的部分应该可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM