json格式的python谷歌云列表vm



嗨,我是谷歌云的新手,我想以json格式打印vm实例,但print(json.dumps(instance))引发了一个错误:TypeError: Object of type Instance is not JSON serializable

我的代码如下:

import json
from google.oauth2 import service_account
from google.cloud import compute_v1

class VM:
def __init__(self, cred_json_path):
self.cred_json_path = cred_json_path
self.credentials = self.create_credentials()
self.page_size = 500
def create_credentials(self):
return service_account.Credentials.from_service_account_file(self.cred_json_path)
def list_vms(self):
client = compute_v1.InstancesClient(credentials=self.credentials)
for zone, instances in client.aggregated_list(request={"project": self.credentials.project_id, "max_results": self.page_size}):
for instance in instances.instances:
print(json.dumps(instance))
return

vm = VM("/tmp/1.json")
vm.list_vms()

有什么简单的方法可以做到这一点吗?我认为gcp-api应该有一些方法,我可以很容易地实现这一点,但我找不到。谢谢你的帮助。

终于知道如何解决这个问题了。

from google.protobuf.json_format import MessageToJson
MessageToJson(instance._pb)

这可以打印json格式的数据。

相关内容

  • 没有找到相关文章

最新更新