将响应插入空列表

问题描述 投票:0回答:1

我是 python 新手,我正在编写一段代码,通过从项目中列出它们来连接到 gke 集群。但是,当我尝试将 gke 集群存储到列表中时,我收到错误 NameError: name 'name' is not Define 。但是当我检查 cluster[name] 的类型时,它给了我 string 。有人可以帮我解决这个问题吗?下面是代码片段

  with open("abc.txt", "r") as f:
   for x in f:
    subprocess.run(["gcloud", "config" ,"set" ,"project",x ])
    request = service.projects().zones().clusters().list(projectId=x, zone='-')
    response = request.execute()
    if 'clusters' in response:
        for cluster in response['clusters']:
            li = []
            li.append(cluster[name])
            print(li)

打印集群给了我这样的结果

{'name': 'gke-name', 'nodeConfig': {'machineType': 'machine-type', 'diskSizeGb': 100, 'oauthScopes': ['https://www.googleapis.com/auth/cloud-platform'], 'metadata': {'VmDnsSetting': 'ZonalPreferred', 'serial-port-logging-enable': 'false'} }
python python-3.x google-cloud-platform google-kubernetes-engine
1个回答
1
投票

集群的响应是一个字典,它的键是一个字符串,所以

name
中的
cluster[name]
应该用双引号
""
或单引号
''
。或者您可以将其定义为变量。

with open("abc.txt", "r") as f:
    for x in f:
        subprocess.run(["gcloud", "config", "set", "project", x])
        request = service.projects().zones().clusters().list(projectId=x, zone='-')
        response = request.execute()
        if 'clusters' in response:
            for cluster in response['clusters']:
                li = []
                li.append(cluster['name'])  # Accessing 'name' key correctly
                print(li)
© www.soinside.com 2019 - 2024. All rights reserved.