2014-12-30 61 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'