Python如何从Facebook Business API返回的Cursor对象中提取spend数据
解决方案
你调用Facebook Marketing API的get_insights方法返回的是SDK封装的Cursor迭代对象,内部每个元素都是AdsInsights类实例,SDK已经做了访问兼容,你可以用以下两种方式提取spend字段:
最简实现(适配你当前单账户单日查询的场景)
因为你查询的是账户级别单日数据,返回的Cursor里只会有1个AdsInsights对象,直接取第一个元素即可:
reponse = GetParam() # 方式1:字典下标访问 spend_amount = reponse[0]['spend'] # 方式2:对象属性访问 spend_amount = reponse[0].spend # 如果需要数值类型做计算,直接转float即可 spend_amount = float(reponse[0]['spend'])
转标准字典/JSON(方便后续同步到Google Sheet)
如果需要把全量返回数据转成原生Python字典格式方便后续处理,可以直接遍历Cursor转换:
reponse = GetParam() # 转成字典列表,和你预期的JSON格式完全兼容 insight_list = [dict(item) for item in reponse] # 提取spend spend_amount = insight_list[0]['spend'] # 你也可以直接把insight_list转成JSON字符串 import json insight_json = json.dumps(insight_list)
多数据场景遍历(如果后续查询多日/多广告维度数据可以用)
如果返回多个数据条目,直接遍历Cursor即可:
reponse = GetParam() for item in reponse: print(f"日期:{item['date_start']},消耗:{item['spend']},曝光:{item['impressions']}")
内容的提问来源于stack exchange,提问作者Jeremy
相关产品推荐
相关产品推荐

