Python-使用Pandas在数据帧中设置itunes中的JSON数据



我是Python的新手,我认为Json和Pandas面临着一个相当简单的问题。

不幸的是,我的大脑似乎停止了工作,所以我很感激你的帮助。

我想分析《超级马里奥》游戏中itunes上的评论,我想用JSON来做这件事。

我想检索评论和随之而来的所有信息,我想把它作为一个数据框架,这样我就可以开始我的分析了。

链接:https://itunes.apple.com/gb/rss/customerreviews/id=1145275343/page=1/json

我的代码:

import json
import requests
import pandas as pd
requestpost = requests.get('https://itunes.apple.com/gb/rss/customerreviews/id=1145275343/page=1/json')
r = json.loads(requestpost.text)
r
dict_keys= r['feed'].keys()
df = pd.DataFrame(r['feed'] , columns = [list(dict_keys)])
df

输出:author entry updated rights title icon link id

我只得到列,每列中没有数据。

我正在学习Python for Data Analysis这本书,我已经阅读了文档并经历了无数的例子。我不明白问题出在哪里。

如有任何帮助,我们将不胜感激。

向致以最良好的问候

解决方案

import json
import requests
import pandas as pd
response = requests.get('https://itunes.apple.com/gb/rss/customerreviews/id=1145275343/page=1/json')
json_data = json.loads(response.text)
data = json_data['feed']['entry']
pd.json_normalize(data=data)

您可以通过以下方式获得所需的输出:

import json
import requests
from pandas.io.json import json_normalize
response = requests.get('https://itunes.apple.com/gb/rss/customerreviews/id=1388411277/page=1/json')
json_data = json.loads(response.text)
data = json_data['feed']
json_normalize(data=data)

json_normalize返回一个数据帧。

从您的数据来看,第一个键中似乎有多个键。例如:

r['feed']["author"]

输出:

{'name': {'label': 'iTunes Store'},
uri': {'label': 'http://www.apple.com/uk/itunes/'}}

所以你需要再过滤一点,以获得你想要的输出

最新更新