InstagramAPI - 如何将 JSON Python 数据解析为 Pandas DataFrame(iPython,Jupyter Notebook)
InstagramAPI - How to Parse JSON Python Data into Pandas DataFrame (iPython, Jupyter Notebook)
这是我在 Jupyter Notebook 中构建的 python 脚本,用于查询我自己的 Instagram 用户名,但我似乎无法将所有数据放入 pandas dataframe,谁能帮帮我?
from instagram.client import InstagramAPI
import pandas as pd
import requests
import json
access_token = "xxxx"
client_secret = "xxxx"
recentMediaResponse = requests.get("https://api.instagram.com/v1/users/self/media/recent/",params = {"access_token": access_token})
recentMediaJson = json.loads(recentMediaResponse.text)
DataDF = pd.DataFrame(columns = ['numComments', 'likes', 'id', 'tags'])
numcomments = pd.DataFrame({'numComments' : [recentMediaJson['data'][1]['comments']['count']],
'likes': [recentMediaJson['data'][1]['likes']['count']],
'id': [recentMediaJson['data'][1]['id']],
'tags': [recentMediaJson['data'][1]['tags']]
})
Final = DataDF.append(numcomments)
print Final
当我打印 'Final' 变量时,我只得到一个 id 和所有相应的数据 values/strings :
我知道有很多数据,因为 'recentMediaJson' 文件看起来是这样的:
在本节中,我认为您选择的是词典列表中的第一个元素 recentMediaJson['data'][1]
。您将需要遍历列表中的所有条目并每次将 numcomments
附加到 DataDF
。
numcomments = pd.DataFrame({'numComments' : [recentMediaJson['data'][1]['comments']['count']],
'likes': [recentMediaJson['data'][1]['likes']['count']],
'id': [recentMediaJson['data'][1]['id']],
'tags': [recentMediaJson['data'][1]['tags']]
您还可以使用 pprint 更轻松地可视化 api 返回的 json 对象。尝试导入 pprint 和 运行 pprint.pprint(recentMediaJson)
,您将能够更好地看到结构。
您只包含 JSON 数据中的一条记录。
我从这里得到了答案:JSON to pandas DataFrame
这是未经测试的,但像这样的东西应该可以工作。
data = json.loads(recentMediaResponse.text)
numComments,likes,id,tags = [],[],[],[]
for result in data['results']:
numcomments.append(result['comments']['count'])
likes.append(result['likes']['count'])
id.append(result['id'])
tags.append(result['tags'])
df = pd.DataFrame([numcomments,likes,id,tags]).T
print df
这是我在 Jupyter Notebook 中构建的 python 脚本,用于查询我自己的 Instagram 用户名,但我似乎无法将所有数据放入 pandas dataframe,谁能帮帮我?
from instagram.client import InstagramAPI
import pandas as pd
import requests
import json
access_token = "xxxx"
client_secret = "xxxx"
recentMediaResponse = requests.get("https://api.instagram.com/v1/users/self/media/recent/",params = {"access_token": access_token})
recentMediaJson = json.loads(recentMediaResponse.text)
DataDF = pd.DataFrame(columns = ['numComments', 'likes', 'id', 'tags'])
numcomments = pd.DataFrame({'numComments' : [recentMediaJson['data'][1]['comments']['count']],
'likes': [recentMediaJson['data'][1]['likes']['count']],
'id': [recentMediaJson['data'][1]['id']],
'tags': [recentMediaJson['data'][1]['tags']]
})
Final = DataDF.append(numcomments)
print Final
当我打印 'Final' 变量时,我只得到一个 id 和所有相应的数据 values/strings :
我知道有很多数据,因为 'recentMediaJson' 文件看起来是这样的:
在本节中,我认为您选择的是词典列表中的第一个元素 recentMediaJson['data'][1]
。您将需要遍历列表中的所有条目并每次将 numcomments
附加到 DataDF
。
numcomments = pd.DataFrame({'numComments' : [recentMediaJson['data'][1]['comments']['count']],
'likes': [recentMediaJson['data'][1]['likes']['count']],
'id': [recentMediaJson['data'][1]['id']],
'tags': [recentMediaJson['data'][1]['tags']]
您还可以使用 pprint 更轻松地可视化 api 返回的 json 对象。尝试导入 pprint 和 运行 pprint.pprint(recentMediaJson)
,您将能够更好地看到结构。
您只包含 JSON 数据中的一条记录。
我从这里得到了答案:JSON to pandas DataFrame
这是未经测试的,但像这样的东西应该可以工作。
data = json.loads(recentMediaResponse.text)
numComments,likes,id,tags = [],[],[],[]
for result in data['results']:
numcomments.append(result['comments']['count'])
likes.append(result['likes']['count'])
id.append(result['id'])
tags.append(result['tags'])
df = pd.DataFrame([numcomments,likes,id,tags]).T
print df