如何用python解析json?

时间:2012-10-14 21:50:56

标签: python json parsing

我正在尝试使用python解析一些json数据,并且无法迭代不同的项目。看起来所有数据都在列表中,并且整个列表中的每个项目都有不同的字典。这就是我到目前为止所做的:

try:
        f = urllib.urlopen("http://www.reddit.com/r/videos/top/.json");
    except Exception:
        print("ERROR: malformed JSON response from reddit.com")
    reddit_posts = json.loads(f.read().decode("utf-8"))["data"]["children"][0]
    print reddit_posts["data"]["media"]["oembed"]["url"]

我可以获得第一个显示的网址,但我不确定如何迭代所有项目并显示网址。有什么建议吗?

此外,这是我正在尝试解析的json的更好的格式化视图:http://jsonviewer.stack.hu/#http://www.reddit.com/r/videos/top/.json

编辑: 我尝试了for循环,但实现它时遇到了麻烦。

for entry in reddit_posts:
    print entry[0] #only prints the first character of entry ('k' and 'd')
    print entry["data"] #get an error: string indices must be integers

1 个答案:

答案 0 :(得分:1)

当您在JSON结果的[0]["children"]时,您只选择了一个帖子。

因此,要获取所有帖子,请不要使用[0]

reddit_posts = json.loads(f.read().decode("utf-8"))["data"]["children"]

现在你可以迭代所有这些:

for post in reddit_posts:
    print post["data"]["media"]["oembed"]["url"]