Python在字典值中附加字典

时间:2016-05-09 06:14:43

标签: python dictionary

我正在使用搁置模块,我有一些类别让我们说'A' B,' C'我有一些文章属于那些类别我正在制作一个字典键是文章名称值是任何数字和搁置模块当我追加它说:

  

属性错误:' dict'对象没有属性'追加'

这是我的代码

indexDb = shelve.open('index.db')
if indexDb.has_key(linko.text.encode('UTF-8')):
    indexDb.setdefault(linko.text.encode('UTF-8'),{}).append(allArticle)
else:
    indexDb[linko.text.encode('UTF-8')] = allArticle

2 个答案:

答案 0 :(得分:1)

在调用{}方法时,您应该使用[]更改.append(),将.extend()更改为setdefault

indexDb.setdefault(linko.text.encode('UTF-8'), []).extend(allArticle)

顺便说一句,您不必检查密钥是否存在,因为.setdefault()返回字典中可用的密钥值,如果给定密钥不可用,则它将返回提供的默认值,即空列表。< / p>

因此,您可能希望按如下方式更新代码:

indexDb = shelve.open('index.db')
indexDb.setdefault(linko.text.encode('UTF-8'), []).extend(allArticle)

答案 1 :(得分:0)

该命令不会附加,但您可以添加整个dict,如下所示:

.Trim("\")

也许你的意思是你要将每个键从dict2添加到dict1。在这种情况下,命令将是,

.TrimEnd("\")