具有相同键名的字典列表

时间:2019-03-17 08:16:29

标签: python-3.x

我正在尝试实现以下输出: [{'Key': 'Language', 'Value': 'Python'}, {'Key': 'Version', 'Value': '3.7'}]

我已经实现了一种实现上述输出的方法:

@cli.command('test', context_settings=dict(
    ignore_unknown_options=True,
    allow_extra_args=True
))
@click.pass_context
def test(ctx):
    data = dict()
    tags=dict()
    tag_list = list()
    for item in ctx.args:
        data.update([item.split('=')])
    for items in data.items():
        tags['Key'] = items[0]
        tags['Value'] = items[1]
        tag_list.append(tags)

    print(tag_list)

方法调用: python test.py测试语言= Python版本= 3.7

但是我得到的输出如下: [{'Key': 'Version', 'Value': '3.7'}, {'Key': 'Version', 'Value': '3.7'}]

原来的字典被替换,然后附加。

您能帮我吗?

感谢与问候,

1 个答案:

答案 0 :(得分:0)

您要在上一个循环中更改相同的字典,因此您的列表将引用相同的字典。

移动此:

tags=dict()

...在最后的for循环中:

for items in data.items():
    tags=dict()