Python 2.7.8:打印子字典值?

时间:2014-12-30 22:22:24

标签: python dictionary printing

我正在使用ConfigParser,它会返回配置数据字典:

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

如果我只想打印UserKey键的值(在本例中为thisisatestkey),那么我通常只需要print "Your key is: {0}".format(mydictvar.get('UserKey'))

如果我只是将原始字典打印成字符串,我会得到上述内容。如果我使用上面的print语句,我得到None的结果,因为在名为UserKey的dict的根中没有键。如果我.get('general')我得到:{'UserKey': 'thisisatestkey'}

显然我可以像这样做一个前循环:

keydic = cp.get_config_data()

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

然后打印用户密钥,工作正常。但是我想知道如何才能避免必须首先完成整个for循环而只是打印内联的darned值?谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

简单地没有循环:

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