2017-09-14 10 views
-1

私はちょうどDjangoとPythonの学習を始めています... 2ヶ月です。 私は私の個人的なプロジェクトの一つをやっています。私はウェブサービスに問い合わせて、その結果をテンプレートに返すセクションを持っています。辞書内のループpython

Webサービスが以下のような辞書を返しています。

x = {'ID':[{ 
    'key-1': 'First Name', 
    'key-2': 'John' 
},{ 
    'key-1': 'Last Name', 
    'key-2': 'Doe' 
},{ 
    'key-1': 'Age', 
    'key-2': '25' 
}] 

私は、辞書内のリストを反復処理し、以下のように自分の辞書を作成することを期待しています:

d = {'First Name': 'John', 'Last Name': 'Doe', 'Age': '25' }

私は私が何をしないのですかわからない、誰かが私を助けてくださいすることができます辞書を作る方法を学ぶ?

+1

あなたがこれまでに試したことを示して、あなたが遭遇した特定の問題について話すことができますか? – pvg

+0

私は...誰かがこっちに説明し、正確に何をして https://stackoverflow.com/questions/18289678/python-iterating-through-a-dictionary-with-list-values を試みたが、それは同じではないこと私はあなたを見ています... – ppv

+0

あなたの外部辞書が 'x 'という名前の場合、x [' ID ']}' –

答えて

0

警告辞書のためのvaluesメソッドの注文ルールに注意してください。

オーダールール2.x documentationおよび3.x documentation

EDIT2:

、辞書順と提供される解決策で任意のすごみを防ぐOrderedDictにデータをラップする:

from collections import OrderedDict 

x = {'ID':[OrderedDict({ 
     'key-1': 'First Name', 
     'key-2': 'John' 
     }),OrderedDict({ 
     'key-1': 'Last Name', 
     'key-2': 'Doe' 
     }),OrderedDict({ 
     'key-1': 'Age', 
     'key-2': '25' 
     })]} 

dict()はこのような何かのための素晴らしいオプションです:

d = dict(each.values() for each in x['ID']) 

出力:

{'Age': '25', 'First Name': 'John', 'Last Name': 'Doe'} 
1

ディクテーションの理解を試し、値としてkey-1 as the key andキー-2を使用して新しいディクショナリを作成してください。

x = {'ID':[{ 
    'key-1': 'First Name', 
    'key-2': 'John' 
},{ 
    'key-1': 'Last Name', 
    'key-2': 'Doe' 
},{ 
    'key-1': 'Age', 
    'key-2': '25' 
}]} 


print({el['key-1']: el['key-2'] for el in x['ID']}) 

結果

{ '年齢': '25'、 '姓': 'ジョン'、 '姓': 'ドウ'}