我是 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'} }
集群的响应是一个字典,它的键是一个字符串,所以
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)