-1

我正在尝试使用 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"]

我可以显示第一个 url,但我不确定如何迭代所有项目并显示 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
4

1 回答 1

1

当您[0]["children"]JSON 结果进行操作时,您只选择了一篇文章。

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

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

现在您可以遍历所有这些:

for post in reddit_posts:
    print post["data"]["media"]["oembed"]["url"]
于 2012-10-14T22:47:19.790 回答