我正在尝试将Facebook广告洞察查询的结果放入pandas数据框中,但返回的对象不合作。
我按照Facebook在这里概述的基本异步使用示例运行:https://developers.facebook.com/docs/marketing-api/insights/v2.6。
我按照Facebook在这里概述的基本异步使用示例运行:https://developers.facebook.com/docs/marketing-api/insights/v2.6。
campaign = Campaign(my_campaign)
params = {
'level': 'ad',
'date_preset': 'lifetime',
'time_increment': 1,
'fields': ['date_start', 'ad_id', 'ad_name', 'spend', 'reach', 'total_actions']
}
async_job = campaign.get_insights(params=params, async=True)
async_job.remote_read()
while async_job[AsyncJob.Field.async_percent_completion] < 100:
time.sleep(1)
async_job.remote_read()
time.sleep(1)
result = async_job.get_result()
然后我尝试将结果转换为列表,就像这个回答一样:https://dev59.com/ppHea4cB1Zd3GeqPtLxx#36397567
result = [x for x in async_job.get_result()]
type(result)
这将返回一个列表作为结果,但是当我尝试使用df = pd.DataFrame(result)将其读入pandas时,我遇到了错误。
如果我查看返回的内容,我会看到每个列表条目都像这样:
<AdsInsights> {
"ad_id": "6035212284443",
"ad_name": "Outlook - Image 2, copy 1",
"date_start": "2015-11-21",
"date_stop": "2015-11-21",
"reach": 625,
"spend": 2.4,
"total_actions": 10
}
如果我要求这个对象的类型,它是一个facebookads.adobjects.adsinsights.AdsInsights而不是一个字典,我想这可能是问题所在。有人知道如何解决这个问题并让我使用pandas读取这些Facebook结果吗?