2017-08-31 43 views
1

我想遍历字典并访问唯一键值。访问不总是出现在多个字典中的密钥

for k,v in dict.items(): 
    print v['maidenName'] 

,但没有运气:例如,我想打印“maidenName”

{'key1': {'firstName': 'bob', 
      'lastName': 'smith', 
      'middleName': 'joe'}, 
'key2': {'firstName': 'jane', 
      'lastName': 'jackson', 
      'middleName': 'marie', 
      'maidenName': 'sanchez'}} 

通常的价值,我会通过字典迭代。

+0

“'maidenName':'sanchez'”不属于某个键。这是对的吗? –

+0

这些大括号不均衡。这不是一个有效的词典,如果我们不能说出你的数据结构是如何构建的,我们不能告诉你如何访问它的数据。 – user2357112

+0

避免使用'dict'作为变量的名称,它会影响(clobbers)内建的'dict',使其在以下代码中无法使用 – Cireo

回答

3

该代码会引发错误,因为maidenName在第一个中不存在。 您可以使用dict.get()避免这种情况:

for k,v in dict.items(): 
    print v.get('maidenName') 

您还可以使用去打印不姓存在一个信息,即摹:

for k,v in dict.items(): 
    print v.get('maidenName', '<no maiden name given>') 
+0

不,如果查看数据,'maidenName'不存在于值字典中在所有。 –

+0

@折速我同意,但我认为这是一个错字 – PRMoureu

+2

@PRMoureu我感谢您的帮助。这回答了我的问题。 –

2

考虑快译通是:

>>> dict = {'key1': {'firstName': 'bob', 
...     'lastName': 'smith', 
...     'middleName': 'joe'}, 
...   'key2': {'firstName': 'jane', 
...     'lastName': 'jackson', 
...     'middleName': 'marie'}, 
...   'maidenName': 'sanchez'} 

它应该工作:

>>> print dict['maidenName'] 
sanchez 

或者如果您不能确定键存在或不

>>> dict.get('maidenName','default_return_data') 
'sanchez' 

以上将返回default_r eturn_data if maidenName key does 不是存在于字典中。

相关问题