添加到python中的嵌套字典
我有一个嵌套字典,其形式如下:添加到python中的嵌套字典,python,dictionary,nested,Python,Dictionary,Nested,我有一个嵌套字典,其形式如下: self.emoji_per_word = {0: {'worte': 0, 'emojis': 0, '#': 0}} 现在我需要在程序运行时添加更多的子字典。我这样做: worte = 0 emoji = 0 # some code that assigns values to the 2 variables and creates the time_stamp variable if time_stamp in self.emoji_per_word
self.emoji_per_word = {0: {'worte': 0, 'emojis': 0, '#': 0}}
现在我需要在程序运行时添加更多的子字典。我这样做:
worte = 0
emoji = 0
# some code that assigns values to the 2 variables and creates the time_stamp variable
if time_stamp in self.emoji_per_word:
self.emoji_per_word[time_stamp]['worte'] = self.emoji_per_word[time_stamp]['worte'] + worte
self.emoji_per_word[time_stamp]['emojis'] = self.emoji_per_word[time_stamp]['emojis'] + emojis
else:
self.emoji_per_word[time_stamp]['worte'] = worte
self.emoji_per_word[time_stamp]['emojis'] = emojis
如您所见,我尝试测试键时间戳是否已经存在,如果是,则使用新数据更新值。如果不是,我想创建键时间戳并为其指定初始值。然而,一旦程序超过初始值,我就会得到一个键错误(见上图)
我最终想要的是这样的东西:
self.emoji_per_word = {0: {'worte': 20, 'emojis': 5, '#':0.25}, 1: {'worte': 20, 'emojis': 5, '#':0.25}}
我在这里做错了什么?您得到错误是因为
self.emoji\u per\u word[time\u stamp]
在time\u stamp!=0
因此,在为字典赋值之前,需要先创建字典,如下所示:
else:
self.emoji_per_word[time_stamp] = {}
self.emoji_per_word[time_stamp]['worte'] = worte
self.emoji_per_word[time_stamp]['emojis'] = emojis
如果self.emoji\u per\u word中的时间戳
表示没有self.emoji\u per\u word[time\u stamp]
。您必须首先在那里创建一个空字典。
else:
self.emoji_per_word[time_stamp] = {}
self.emoji_per_word[time_stamp]['worte'] = worte
self.emoji_per_word[time_stamp]['emojis'] = emojis