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
,字典的第一个值,或字典的最后一个值。任何人都有任何指示,或者我有什么简单的遗失?
答案 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)