2017-03-26 6 views
0
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ループ内の辞書にアクセスするには?

forループ内の辞書情報にアクセスできたら、残りのコードに進むことができます。私が得たベストは、NoneType、辞書の最初の値、または辞書の最後の値です。誰もが任意のポインタを持っているか、私は行方不明の何か簡単ですか?

+2

をあなたのコードでは、私たちに価値がありませんその動作をチェックする。最小限の例と、残りのコードを知らなくても実際に理解できる出力/結果を期待してください。特に、あなたが提供したコードがタイトルのより一般的な質問と関係していることは、わかりません。 – timgeb

+2

はい、することができます:) –

+1

あなたはあなたのループ内*を返しているので、それは一度 "ループ"します。それがあなたの意図だとは思わない。 – Evert

答えて

1

私はあなたがfor-loopからすべてのdictsを累積しようとしていると思います。その場合には、ループを終了し、リスト内のdictsを蓄積するresults.append(info)と交換リターン排除:私たちは私たちの通訳に貼り付けることができないため

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) 
+0

ありがとうございました!私はこれを早期に考えて欲しい! –

関連する問題