2017-03-29 10 views
1

私はJSONからプルするリスト内に値が存在するかどうかを調べるPython3スクリプトにifブロックを作成しようとしています。 JSONデータは以下の通りです:リスト内のすべてのインデックスを参照し、Pythonで値の存在を確認してください

[ 
    { 
    "id": 59616405645, 
    "name": "Foo" 
    }, 
    { 
    "id": 990164054345, 
    "name": "FindMe" 
    }, 
    { 
    "id": 2009167874, 
    "name": "Bar" 
    } 
] 

私はBarの値がリスト内に存在するかどうかを判断しようとしています。行うには私は直接インデックスを参照し、次のやってる:

if "FindMe" in m_orgs[1].values(): 
    print("Yo it's here") 
else: 
    print("Yo it's not here.") 

をしかし、私は引っ張ってるJSONデータは常に異なる結果を持っていますし、私たちはインデックス番号を知っていることはありませんので、直接の参照は動作しません。 。リスト内のすべてのインデックスを同時に参照するにはどうすればよいですか?

答えて

2

あなたは一度にすべてのインデックスを参照することはできませんが、あなたがそれらを介してループをすることができますし、あなたが最初に存在を見つけるとすぐに停止します。ような何か:それは最初のTrue値が検出されたとき

found = any("findMe" in item.values() for item in m_orgs) 

この行は実行を停止します。だから最悪の場合、それはあらゆる位置を見渡し、何も見つけられません。

1

あなたはこのようany()を使用することができます。

if any(d['name'] == 'Foo' for d in json): 
    do this 
+0

を確認することができます – RaminNietzsche

1

あなたが最初のデータのセットに、元のJSONデータを変換して、単純に私は私の答えを変更し、申し訳ありませんが、申し訳ありませんが、私はあなたを取得していないjuanpa.arrivillaga @、集合演算によって

name_set = {org['name'] for org in m_orgs} 
print 'FindMe' in name_set 
関連する問題