gpt4 book ai didi

python yaml仅打印键值

转载 作者:行者123 更新时间:2023-12-01 09:11:21 25 4
gpt4 key购买 nike

我想从以下 yaml 文件中仅打印 a 的值

1w:
team1:
contact: team1@email.com
2w:
team2:
contact: team2@email.com

到目前为止,我有以下工作:

    #!/usr/bin/env python

import yaml


def yaml_loader(filepath):
with open(filepath, 'r') as file_descriptor:
#add condition to validate yaml
data = yaml.load(file_descriptor)
return data

def yaml_dump(filepath, data):
with open(filepath, w) as file_descriptor:
yaml.dump(data, file_descriptor)


if __name__ == "__main__":
filepath = "log/log_registration.yaml"
data = yaml_loader(filepath)

items = data.get('3w')
for item_roletype, value in items.iteritems():
print value

刚刚编辑了我的帖子,因为我意识到我的 yaml 应该具有不同的布局以避免多个条目覆盖。

此时,我不确定如何仅打印“team1”和“team2”的名称以及后续的其他名称。没有联系信息。

上面的代码目前无法运行...

最佳答案

自您编辑问题以来已进行编辑

新的 yaml 数据

1w:
team1:
contact: team1@email.com
2w:
team2:
contact: team2@email.com

好的,使用data = yaml_loader(filepath)我们可以查看data:

{'1w': {'team1': {'contact': 'team1@email.com'}},
'2w': {'team2': {'contact': 'team2@email.com'}}}

我们可以这样提取数据

for week, teams in data.items():
for team in teams.keys():
print('{}: {}'.format(key, team))

输出:

1w: team1
2w: team2
<小时/>

原始答案:我认为你把事情搞得太复杂了

数据:

1w:
a: team1
b: team1@email.com
2w:
a: team2
b: team2@email.com

代码:

data = yaml_loader(filepath)
for key, value in data.items():
print('{}[a] = {}'.format(key, value['a']))

输出(包含您的数据)

1w[a] = team1
2w[a] = team2

关于python yaml仅打印键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51629816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com