2016-07-18 20 views
-5

私は 辞書のpythonで特定の値を取得するには?

"countries":{ 
    "98":{ 
     "uid":98, 
     "title":"Switzerland" 
     } 
}  

は私が JSON復号法を使用して "タイトル" の値だけを取得したい、などの辞書を持っています。

注:「98」の値は動的なので、毎回変更されます。

どうすればこの問題を解決できますか?

+2

それが実際に何であれ、 '' 98 ''が表すはずの' 'x' [" title "]'あるいはおそらく '' mydict ["countries"] [x] ["title"] 'あなたが持っている。 そうでなければ、あなたが何を求めているのか分からない。 – khelwood

+0

jsonのデコード方法でコードを提供できますか? –

+2

何を試しましたか? – Kendas

答えて

1

あなたが98のようないくつかのフィールドを持っていますが、それらはすべてのタイトルが含まれていることを意味している場合、あなたはこれを行うことができます:

titles = list() 
for k in my_dict["countries"].keys(): 

    if my_dict["countries"][k].has_key("title"): 

     titles.append(my_dict["countries"][k]["title"]) 

か、などをコメントに示唆

try: 
    titles = [item['title'] for item in dictName['countries']] 
except KeyError: 
    print("no countries/title") 
1

あなたが提供している "辞書"はJSON形式の文字列であり、それをPythonオブジェクト(辞書)にデコードしてからアクセスしようとしていると仮定します。

これが当てはまる場合、jsonモジュールはあなたの友人です! ドキュメント:https://docs.python.org/3/library/json.html

擬似コード

import json 

# This is your JSON string 
json_str = "......." 

# This could be a dictionary, depending on the structure of the input JSON string 
countries = json.loads(json_str) 

# access! 
target_uid = "98" 

# This should print Switzerland 
print(countries["countries"][target_uid]["title"]) 
+1

データ 'target_uid'によると文字列でなければなりません。 – Matthias

+0

@Matthias良いキャッチ。更新しました。ありがとう! –

関連する問題