键错误,在Python中向列表的字典中添加数据



我正在尝试创建一个字典,其中键值存储在这样的列表中:

data={
"key_value":["h1","h2","h3"],
"key_value2":["h11","h21","h31"],
}

在向字典列表中添加元素时,我使用了这个函数:

data[book_name].append(highlight)

但是这给了我一个关键错误KeyError: 'Key_value '为什么会发生这种情况?

目前可以使用data.setdefault(book_name, []).append(highlight)。如果键不存在,它将以空列表作为值创建一个新键,否则您将获得可以附加到的现有键的列表。

注意:如果你的键后面有空格,这可能会导致"unexpected"的行为。data[' key']vs .data['key ']。你可以使用data.setdefault(book_name.strip(), []).append(highlight)来解决这个问题。

建议阅读:collections.defaultdict

出现错误是因为您在data['key_value ']中添加了空格。应该是这样的:data['key_value'].

当您尝试访问字典中的任何键时,请确保该键与字典中的键相同。

例如,你的字典是:

data={
'key1': ['val1','val2']
}

如果你试图访问字典的键,它应该是data['key1'],而不是data[' key1']data['key1 ']data[' key1 ']

这是因为在您的字典中没有名为book_list的键。您可以将现有键的value_list添加到value_list中,例如您的"key_value2",如下所示:

data={"key_value":["h1","h2","h3"], "key_value2":["h11","h21","h31"]}
data["key_value2"].append("highlight")
print(data)
#prints: {'key_value': ['h1', 'h2', 'h3'], 'key_value2': ['h11', 'h21', 'h31', 'highlight']}

如果你想在字典中创建一个全新的key_value对,然后在值列表中添加更多的值,你可以这样做:

#create a new key, the value for which is a list:
data["book_names"] = ["highlight"]
#append another value to the value list for existing key:
data['book_names'].append("lowlights")
#Output:
#data after first operation: {'key_value': ['h1', 'h2', 'h3'], 'key_value2': ['h11', 'h21', 'h31'], 'book_names': ['highlight']}
#data after second operation: {'key_value': ['h1', 'h2', 'h3'], 'key_value2': ['h11', 'h21', 'h31'], 'book_names': ['highlight', 'lowlights']}

相关内容

  • 没有找到相关文章

最新更新