2017-05-18 11 views
-3

存在している私は、キーノード2をしようとしています「データ」dictのチェックキーはPythonの辞書に以下

{' node2': {'Status': ' online', 'TU': ' 900', 'Link': ' up', 'Port': ' a0a-180', 'MTU': ' 9000'}, ' node1': {'Status': ' online', 'TU': ' 900', 'Link': ' up', 'Port': ' a0a-180', 'MTU': ' 9000'}} 

ある以下のコードでのデータ辞書に存在かではありませんが、それは動作しません。これは、キーが辞書内にあるかどうかを決定する完全に適切な方法である

if 'node2' in data: 
    print "node2 Present" 
else: 
    print "node2Not present" 
+0

辞書を確認してください。いくつかのキーには先頭のスペースがあります。 – DeepSpace

+6

'' node2''に空白がありますか? – Haris

+0

「うまくいきません」と言うと、どんな結果が得られますか?チェックしているコードはうまくいくように見えるので、問題はコードの周りにあるかもしれません - あなたがここに投稿することができるので、他に何が問題を引き起こしているかを知ることができますか? – bouteillebleu

答えて

0
data = {'node2': {'Status': ' online', 'TU': ' 900', 'Link': ' up', 'Port': ' a0a-180', 'MTU': ' 9000'}, ' node1': {'Status': ' online', 'TU': ' 900', 'Link': ' up', 'Port': ' a0a-180', 'MTU': ' 9000'}} 

    if data.has_key('node2'): 
     print "== if condition ==" 
    else: 
     print "== else ==" 
+1

Python 3.xでは '' has_key''が削除されていることを指摘しておきます(とにかく非常にpythonicではありません)。出典:[削除されました。 dict.has_key() - 代わりにin演算子を使用してください。](https://docs.python.org/3.1/whatsnew/3.0.html#builtins)[質問に「python-2.7」と表示されていますが、完全性のためには指摘すべきである] - しかし、OPの質問における "問題"は、キーのスペースです。 –

1
if 'node2' in data: 
    print "node2 Present" 
else: 
    print "node2Not present" 

を助けてください、残念ながら'node2'' node2'は、(スペースに注意)で、あなたの辞書にはない:

if ' node2' in data: 
    print "node2 Present" 
else: 
    print "node2Not present"