如何访问for循环中的字典?

时间:2017-03-26 17:08:14

标签: python dictionary

names = [x for x in cal if x['full_county_name'] != None]
for name in names:
    cities = name['name'].encode('ascii','ignore')
    counties = name['full_county_name'].encode('ascii','ignore')
    latitude = name['primary_latitude'].encode('ascii','ignore')
    longitude = name['primary_longitude'].encode('ascii','ignore')
    info = {'name': cities,'county': counties,'latitude': latitude,'longitude': longitude}
    return info

有代码。我从json获取信息,过滤掉列表理解中不需要的数据,然后在for循环中构建所需的字典。 return语句在循环中工作,但是如何在循环外获取我需要的字典。

一旦我可以访问for循环中的字典信息,我就可以继续我的其余代码了。我得到的最好的是NoneType,字典的第一个值,或字典的最后一个值。任何人都有任何指示,或者我有什么简单的遗失?

1 个答案:

答案 0 :(得分:1)

我相信你正试图积累来自for-loop的所有dicts。在这种情况下,消除终止循环的 return 并将其替换为results.append(info),它将在列表中累积dicts:

results = []
names = [x for x in cal if x['full_county_name'] != None]
for name in names:
    cities = name['name'].encode('ascii','ignore')
    counties = name['full_county_name'].encode('ascii','ignore')
    latitude = name['primary_latitude'].encode('ascii','ignore')
    longitude = name['primary_longitude'].encode('ascii','ignore')
    info = {'name': cities,'county': counties,'latitude': latitude,'longitude': longitude}
    results.append(info)