我有一个30k用户的文件和一个200k评论的文件。每一行都是有效的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 :(得分:0)
因为在reviews
的第一次迭代之后,users
已经用尽了:没有更多要阅读。你永远不会告诉Python从一开始就重新开始。
您可能希望在外循环的每次迭代开始时执行users.seek(0)
。