-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

JSON の結果を選択したときに、投稿を 1 つだけ選択し[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"]
于 2012-10-14T22:47:19.790 に答える