我如何打印你好和所有女性成员



test.json

{
"A Company":[{"female":["Jessica","Eve"]},{"male":["Mike","Peter"]}],
"B Company":[{"female":["Laura","Pamela"]},{"male":["Mark","Steve"]}]
}

测试.py

import json
f = open('test.json',)
data = json.load(f)
for v in data.values():
for element in v:
print(element)

输出:

{'female': ['Jessica', 'Eve']}
{'male': ['Mike', 'Peter']}
{'female': ['Laura', 'Pamela']}
{'male': ['Mark', 'Steve']}

如何打印此:";你好,杰西卡"quot;你好,伊芙"你好劳拉"quot;你好帕梅拉;?

您可以使用迭代器提取then名称,并使用for循环打印问候语,而无需构建中间列表:

data = {
"A Company":[{"female":["Jessica","Eve"]},{"male":["Mike","Peter"]}],
"B Company":[{"female":["Laura","Pamela"]},{"male":["Mark","Steve"]}]
}
names = (name for groups in data.values() 
for group in groups 
for name in group.get("female",[]))

for name in names: print("Hello",name)
Hello Jessica
Hello Eve
Hello Laura
Hello Pamela

您错过了最内部的循环,在那里您迭代内部记录并检查它们是雄性还是雌性。

请参阅示例:

import json
json_file = """
{
"A Company":[{"female":["Jessica","Eve"]},{"male":["Mike","Peter"]}],
"B Company":[{"female":["Laura","Pamela"]},{"male":["Mark","Steve"]}]
}
"""
parsed = json.loads(json_file)
for val in parsed.values():
for record in val:
# This below is the innermost loop
for key, value in record.items():
# If it's female then we use list comprehension to print the greetings
if key == "female":
[print(f"Hello {name}") for name in value]

最新更新