2016-02-10 40 views
0

我有这个json文件的问题:Zips.json! 。json文件(Python)的问题

我没有找到一种方法来计算每个州的邮政编码数量。我尝试过很多办法,如本:

file=open("C:\Users\Alex\Downloads/zips.json","r") 
lines=json.loads(file.readline()) 
number=0 
states=lines["state"] 
for line in file: 
    lines=json.loads(line) 
    if lines ["state"]==states: 
     number=number+1 
    else: 
     print u"states:",states, u"Number of codes: ",number 
     states=lines["state"] 
+0

感谢您的答复,我加号= 0下我的人,但仍无法正常工作。 – Python241820

回答

2

要做到这一点,最简单的方法是使用一个collections.Counter

import json 
from collections import Counter 
from operator import itemgetter 

counter = None 
state_getter = itemgetter('state') 

with open('zips.json') as fh: 
    zips_data = (json.loads(line) for line in fh) 
    states_names = map(itemgetter('state'), zips_data) 
    counter = Counter(states_names) 

print(counter) 
+0

非常感谢你,它完美的作品! @AndreyT – Python241820