Facebook広告のインサイトクエリの結果をpandasデータフレームに取得しようとしていますが、返されたオブジェクトが連携していません。Facebook広告を取得するパンダのデータフレームに結果を反映
こちらの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://stackoverflow.com/a/36397567/5459606
result = [x for x in async_job.get_result()]
type(result)
これは、リストとして結果を返す私はDF = pd.DataFrame(結果)を使用して、パンダにこれを読んしようとすると、しかし、私はエラーを取得しています
私が返されているものを見れば、私は、各リストのエントリは次のようになります参照してください。
<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
}
そして、私はこのobejctのタイプを求めるならば、それはfacebookads.adobjects.adsinsights.AdsInsightsない辞書です私は問題があると推測しています。誰もがこれを解決する方法を知っているし、私はこれらのFacebookの結果を読むためにパンダを使用させてください。
お返事ありがとうございます。私はあなたの例(result = [x for async_job.get_result()]でそれを行った方法に従いましたが、私はエラーがスローされました。 KeyError: 'None' –
ああ、私はあなたが "非同期"を使うことを忘れている。データを取得する場合は、「async = True」を「async = False」に変更する必要があります。私はこの時間を助けることができます。 –
ねえ、本当に助けてくれてありがとう。残念ながら、KeyErrorのためにまだ動作していません: 'なし'。私は、結果リスト[0] .keys()を使用して結果リスト内の単一の項目を見ると、フィールドのパラメータで選択したキーに関係なく、そこに1トンのキーがあることがわかります。 ofは文字列としてではなく、Noneです。ちょうどそこに座っていない、真ん中にいる、物事を台無しにする(私は思う)。 –