【问题标题】:conditional access to items in python有条件地访问python中的项目
【发布时间】:2022-12-09 13:48:34
【问题描述】:

我想用 python 为 Kubernetes 编写一些测试。这是我在 Kubernetes 中的部署文件示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-service
  namespace: test
  creationTimestamp: '2022-12-08T18:18:49Z'
  labels:
    app: test-service
    team: teamA
.
.
.
.

我想要做的是访问部署文件中的项目:

some codes here....
result = set()
some codes here.....
  with open(deoloyment_file, "r") as stream:
        for data in yaml.safe_load_all(stream.read().replace('\t', '  ')):
            if data and data['kind'] == 'Deployment':
                result.add(f"{data['metadata']['namespace']}:{data['metadata']['name']}:{data['metadata']['labels']['team']}")

这会引发异常,因为在某些部署文件中没有标签或团队。我想知道如何使用 python 有条件地访问项目。

【问题讨论】:

    标签: python kubernetes


    【解决方案1】:

    您可以为 dict.get 方法指定一个默认值,以使其在给定键不存在时回退到该值。

    改变:

    data['metadata']['labels']['team']
    

    至:

    data['metadata'].get('labels', {}).get('team', '')
    

    【讨论】:

      猜你喜欢
      • 2015-08-03
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      相关资源
      最近更新 更多