如何读取GCP Cloud Logging API list_metrics返回的Metric对象内容
解决GCP Python客户端Metric对象内容读取问题
问题原因
你直接打印
google.cloud.logging_v2.metric.Metric类实例时输出的是对象内存地址,是因为该类没有定义默认的字符串格式化规则,且属于GCP客户端自定义类实例,不属于Python原生可迭代/可序列化结构,所以直接用list()、json.dumps()等方法无法正常解析。
解决方法
- 方法1:直接访问实例内置属性
Metric类已经预设了对应指标的各个属性,可直接调用读取:
for metric in client.list_metrics(): # 常用属性示例 print("指标名称:", metric.name) print("指标筛选条件:", metric.filter_) print("指标描述:", metric.description) print("指标所属项目:", metric.project) print("指标创建时间:", metric.create_time) print("指标更新时间:", metric.update_time)
- 方法2:转成Python字典读取所有内容
GCP客户端的资源类实例基本都内置to_dict()方法,可以直接将实例所有内容序列化为原生Python字典:
for metric in client.list_metrics(): metric_dict = metric.to_dict() # 直接打印完整字典 print(metric_dict) # 也可以通过字典键取值 print(metric_dict.get("name"))
- 方法3:直接转成JSON字符串
如果需要JSON格式的输出,直接调用实例内置的to_json()方法即可,不需要手动用json.dumps()处理:
for metric in client.list_metrics(): metric_json = metric.to_json() print(metric_json)
内容的提问来源于stack exchange,提问作者Simon Breton
相关产品推荐
相关产品推荐

