2013-07-06 26 views
1

我有一个30k用户文件和一个200k评论文件。每一行都是有效的JSON结构,但整个文件不是。遍历两个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'] 

我认为这将遍历用户对于每个评论,但它遍历用户的第一次审查,然后只在审查文件迭代,不看用户。

我错过了什么吗?我会期望它遍历每个评论的用户文件。有没有更简单的方法来处理这个问题?我一直在发现,任何将文件抽象为帮助类的尝试都会显着减慢搜索速度。

回答

0

因为在第一次迭代后通过reviewsusers已用尽:没有更多可读。你从不告诉Python从一开始就重新开始。

您可能想在外循环的每次迭代开始时执行users.seek(0)