所以我需要在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>]
答案 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
指的是类型对象。