我正在通過其 API 訪問 facebook 頁面的資料,我已經設法獲得輸出,但它是 JSON 格式,并且打算將其轉換為 CSV,但我沒有成功。
import requests
import facebook
import urllib3
import csv
import json
import pandas as pd
token= 'EAAHAW2Bvoa8BAKgbnLe6r5ZAASjgIPbRl683UmcjQuBTwlSCJNJsVWPxmNSk013jcYVivSemjTivuRaEIxD918CuhSsIM7ZCCmDqKiHNi80ndSTy3oXZCklk3f4U9jIQGf20HOZBBqJtnyiWXGdZAQ6tq3mpaRNEmDMe47t4ERTLfPd1ja1yqWA67ZC6ZB0xylGjnStckbNudMaKT3w2Ub6'
graph = facebook.GraphAPI(access_token=token)
events = graph.request('/2063741620561889/insights?metric=page_fans,page_actions_post_reactions_like_total,page_actions_post_reactions_love_total,page_actions_post_reactions_wow_total,page_actions_post_reactions_haha_total,page_actions_post_reactions_sorry_total,page_actions_post_reactions_anger_total,page_video_views,page_video_views_organic,page_posts_impressions,page_impressions,post_clicks,page_views_total&period=day&date_preset=last_year')
結果

我希望能夠獲得該型別的任何結果并能夠將其轉換為 CSV。我嘗試了以下但沒有成功:
info = json.dumps(events)
print(info[0].keys())
with open("samplecsv.csv", 'w') as f:
wr = csv.DictWriter(f, fieldnames = info[0].keys())
wr.writeheader()
wr.writerows(info)
uj5u.com熱心網友回復:
當您的資料結構不像您的情況那樣結構良好時,可以通過分析 json 并迭代它來獲得您需要的資料來完成。在四種特定情況下,可能是這樣的:
data = [(x["value"],x["end_time"]) for x in info["data"][0]["values"]]
有了這個,您可以檢索元組串列中所需的資訊以保存在 csv 檔案中,就像您在哪里做的那樣,但不必自己制作該檔案,您可以使用為您完成此操作的庫,例如構建熊貓資料框:
import pandas as pd
df = pd.DataFrame(data=data, columns=[info["data"][0]["name"], info["data"][0]["period"]])
df.to_csv(your_path)
還有其他庫以自動方式創建此結構,但并不總是按您的意愿作業。這是我能想到的最簡單的方法,并且可以修改為其他資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/471459.html
