Python中如何将DataDog API返回的LogAttributes对象转为字典
从DataDog API的LogAttributes对象中提取message字段的方法
你遇到的问题是因为DataDog Python SDK返回的不是原生字典,而是自动生成的LogAttributes模型类实例,这类对象不支持字典的keys()、下标访问等操作,但可以通过以下两种方式获取message字段值:
方法1:直接通过属性访问
DataDog的模型类会把API返回的字段映射为实例属性,直接通过.访问即可:
for item in data: print(item.message)
方法2:转换为原生字典后操作
如果需要用字典的方式处理数据,可以调用模型类自带的to_dict()方法将对象转为字典:
for item in data: item_dict = item.to_dict() if 'message' in item_dict: print(item_dict['message'])
执行以上任意一段代码,都能得到你期望的输出:
failure failure
补充说明
DataDog的Python SDK会自动将API返回的JSON响应反序列化为对应的模型类对象,这些对象封装了字段的类型校验和访问方法,所以不能直接当作字典使用。除了message,其他字段比如host、service也可以用同样的方式获取(item.host或item_dict['host'])。
内容的提问来源于stack exchange,提问作者Saad Hasan
相关产品推荐
相关产品推荐

