Я пытаюсь передать данные в JSON из API в Pandas DataFrame.Я не смог заставить pandas.read_json
работать с данными API, поэтому я уверен, что это не лучшее решение, но в настоящее время у меня for loop
проходит через JSON для извлечения нужных мне значений.
Вот что у меня есть:
import json
import urllib.request
import pandas as pd
r = urllib.request.urlopen("https://graph.facebook.com/v3.1/{page-id}/insights?access_token={access-token}&pretty=0&metric=page_impressions%2cpage_engaged_users%2cpage_fans%2cpage_video_views%2cpage_posts_impressions").read()
output = json.loads(r)
for item in output['data']:
name = item['name']
period = item['period']
value = item['values'][0]['value']
df = [{'Name': name, 'Period': period, 'Value': value}]
df = pd.DataFrame(df)
print(df)
А вот выдержка из JSON из API:
{
"data": [
{
"name": "page_video_views",
"period": "day",
"values": [
{
"value": 634,
"end_time": "2018-11-23T08:00:00+0000"
},
{
"value": 465,
"end_time": "2018-11-24T08:00:00+0000"
}
],
"title": "Daily Total Video Views",
"description": "Daily: Total number of times videos have been viewed for more than 3 seconds. (Total Count)",
"id": "{page-id}/insights/page_video_views/day"
},
Проблема, с которой я сейчас сталкиваюсь, заключается в том, чтоцикла For (я полагаю), каждая строка данных вставляется в свой собственный DataFrame следующим образом:
Name Period Value
0 page_video_views day 465
Name Period Value
0 page_video_views week 3257
Name Period Value
0 page_video_views days_28 9987
Name Period Value
0 page_impressions day 1402
Как я могу легко передать все их в один DataFrame, как это?
Name Period Value
0 page_video_views day 465
1 page_video_views week 3257
2 page_video_views days_28 9987
3 page_impressions day 1402
Опять же, я знаю, что это, скорее всего, не лучшее решение, поэтому любые предложения по улучшению любого аспекта приветствуются.