1

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の結果を読むためにパンダを使用させてください。

答えて

0

HaHaでは、list()を使用してから、pandas.DataFrameを使用できます。 こちらをご覧ください[How to parse nested FB API response from Python SDK

+0

お返事ありがとうございます。私はあなたの例(result = [x for async_job.get_result()]でそれを行った方法に従いましたが、私はエラーがスローされました。 KeyError: 'None' –

+0

ああ、私はあなたが "非同期"を使うことを忘れている。データを取得する場合は、「async = True」を「async = False」に変更する必要があります。私はこの時間を助けることができます。 –

+0

ねえ、本当に助けてくれてありがとう。残念ながら、KeyErrorのためにまだ動作していません: 'なし'。私は、結果リスト[0] .keys()を使用して結果リスト内の単一の項目を見ると、フィールドのパラメータで選択したキーに関係なく、そこに1トンのキーがあることがわかります。 ofは文字列としてではなく、Noneです。ちょうどそこに座っていない、真ん中にいる、物事を台無しにする(私は思う)。 –

関連する問題