我正在尝试实现以下输出:
[{'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'}]
原来的字典被替换,然后附加。
您能帮我吗?
感谢与问候,
答案 0 :(得分:0)
您要在上一个循环中更改相同的字典,因此您的列表将引用相同的字典。
移动此:
tags=dict()
...在最后的for
循环中:
for items in data.items():
tags=dict()