2014-12-30 94 views
1

我使用ConfigParser返回的配置數據的詞典這樣:Python 2.7.8:打印子字典值?

{'general': {'UserKey': 'thisisatestkey'}} 

如果我想簡單地打印用戶鍵鍵的值(在這種情況下thisisatestkey),然後我一般只是做一個print "Your key is: {0}".format(mydictvar.get('UserKey'))

如果我只是打印出一個字符串的原始字典我得到了上述。如果我使用上面的print語句,則得到None的結果,因爲在字典的根中沒有關鍵字,稱爲UserKey。如果我.get('general')我只是得到:{'UserKey': 'thisisatestkey'}

很顯然,我可以做一個循環前,像這樣:

keydic = cp.get_config_data() 

for m, k in keydic.iteritems(): 
    for s, v in k.iteritems(): 
     userkey = v 

,然後打印用戶鑰,工作正常。但是我想知道如何避免首先執行整個for循環,並直接打印內聯值?謝謝!

+0

你的意思是'mydictvar [ '一般'] [ '用戶鍵']'?或者,如果鍵可能缺少'mydictvar.get('general',{})。get('UserKey')'。 –

回答

2

您可以使用

mydictvar['general']['UserKey'] 

或者,如果鑰匙可能會丟失

mydictvar.get('general', {}).get('UserKey') 

mydictvar['general']返回一個字典對象;然後您可以將[...]應用於該值以檢索下一個鍵。

這個工作在字符串格式化過:

>>> mydictvar = {'general': {'UserKey': 'thisisatestkey'}} 
>>> print "Your key is: {0[general][UserKey]}".format(mydictvar) 
Your key is: thisisatestkey 
+0

完美,謝謝! – LuckyURE

0

根本沒有循環:

>>> my_dict = {'general': {'UserKey': 'thisisatestkey'}} 
>>> my_dict['general']['UserKey'] 
'thisisatestkey'