Python:嵌套字典?

时间:2014-04-18 17:21:13

标签: python python-2.7 dictionary

所以我需要在python中嵌套一些字典。

到目前为止我的字典代码是:

dict[counter] = {'title': title, 'year': year}

因此,这会在字典dict中添加一个具有变量counter值的键。该键的值是另一个字典。这里,年份和标题是变量。

但是当我把它打印出来时,它看起来像这样:

302: {'title': u"You Won't See Me", 'year': u'1965'},

(那只是输出的一个例子)。 它似乎把它解释为一个字符串。

我理解它的方式,如果Python将其识别为字典,那么prettyprint会缩进/换行。

右?

所以我猜真正的问题是,这是添加嵌套字典的有效方法吗?

PS我用于prettyprinter的代码是:

pp = pprint.PrettyPrinter(depth=1000)
pp.pprint(dict)

以防万一[/ p>]

2 个答案:

答案 0 :(得分:1)

pprint模块根据需要缩进 ;适合一行的对象不会展开。您已经添加了嵌套字典就好

如果字典有更多的键和值,则根据需要使用更多行:

>>> import pprint
>>> pprint.pprint({'foo': 'bar', 'spam': {'ham': 'eggs'}})
{'foo': 'bar', 'spam': {'ham': 'eggs'}}
>>> pprint.pprint({'foo': 'bar', 'spam': {'ham': 'eggs'}, 'supercalifragilisticexpialidocious': 'superformiweldigeindefantakolosachtig'})
{'foo': 'bar',
 'spam': {'ham': 'eggs'},
 'supercalifragilisticexpialidocious': 'superformiweldigeindefantakolosachtig'}
>>> pprint.pprint({'foo': 'bar', 'spam': {'ham': 'eggs', 'supercalifragilisticexpialidocious': 'superformiweldigeindefantakolosachtig'}})
{'foo': 'bar',
 'spam': {'ham': 'eggs',
          'supercalifragilisticexpialidocious': 'superformiweldigeindefantakolosachtig'}}

Python在任何时候都不会将嵌套字典转换为字符串;如果做了pprint会在字符串对象周围添加引号,就像字典中用作键的字符串一样!

答案 1 :(得分:0)

这就是嵌套dicts的印刷方式;绝对是嵌套dicts不被解释为字符串的情况。

要说服自己,请打印

dict[key][nested_key]

如果嵌套的dict被解释/存储为字符串,则会产生错误。

另外:dict是不支持dicts的名称,因为dict指的是类型对象。