下面的附加工作正常,但它返回一个列表而不是字典。因此,当我尝试使用 tag.items() 提取键/值时,它告诉我有一个
ValueError: not enough values to unpack (expect 2, got 1)
这是正确的错误消息,因为它是一个列表,因为 all_tags.append 创建了一个列表。如何将其作为字典返回?
tags = get_all_tags(client_tags)
for tag in tags:
tag_key, tag_value = tag.items()
...
def get_all_tags(client_tags):
for tag_key, tag_value in client_tags.items():
if re.match(TAG_KEY_PATTERN, tag_key):
all_tags.append({tag_key: tag_value})
return all_tags
最佳答案
首先不要将其设为 dict
的 list
,只需首先创建一个 dict
:
def get_all_tags(client_tags):
all_tags = {}
for tag_key, tag_value in client_tags.items():
if re.match(TAG_KEY_PATTERN, tag_key):
all_tags[tag_key] = tag_value
return all_tags
或者作为使用 dict
理解的单行代码:
def get_all_tags(client_tags):
return {k: v for k, v in client_tags.items() if re.match(TAG_KEY_PATTERN, k)}
无论哪种方式,使用它的循环都是:
for tag_key, tag_value in tags.items():
...
关于Python追加返回字典而不是列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55526854/