1

3 万人のユーザーのファイルと 20 万件のレビューのファイルがあります。各行は有効な JSON 構造ですが、ファイル全体はそうではありません。

レビューごとに、対応するユーザーを見つけて、ユーザー辞書に保存されている値である、ユーザーのレビューの総数を記録したいと考えています。

with open('review_file.json') as reviews, open('user_file.json') as users:
    for r in reviews: #r == dict
        review = json.loads(r)
        print "review iteration"
        for s in users:  #s == dict
            print "user iteration"
            user = json.loads(s)
            if user['user_id'] == review['user_id']:
                print review['id']
                print user['user_id']
                print user['num_review']

これはレビューごとにユーザーを反復すると思っていましたが、最初のレビューでユーザーを反復し、ユーザーを確認せずにレビュー ファイルを反復するだけです。

何か不足していますか?レビューごとにユーザーファイルを反復処理することを期待しています。これを処理する簡単な方法はありますか?ファイルをヘルパー クラスに抽象化しようとすると、この検索が大幅に遅くなることがわかりました。

4

1 に答える 1

0

を介した最初の反復の後reviewsusersが使い果たされているため、読み取るものはもうありません。Python に最初からやり直すように指示することは決してありません。

おそらくusers.seek(0)、外側のループの各反復の開始時に実行する必要があります。

于 2013-07-06T18:10:10.693 に答える