将数据附加到 Python 中的列表字典时出现关键错误
Key Error while appending data into dictionary of list in 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)
可以用。如果密钥不存在,它将创建一个新密钥,并将空列表作为值,否则您将获得可以附加到的现有密钥的列表。
注意:如果您的键有尾随空格,这可能会导致“意外”行为。例如:data[' key']
与 data['key ']
。您可以使用 data.setdefault(book_name.strip(), []).append(highlight)
之类的东西来克服这个问题。
发生错误是因为您在 data['key_value ']
中放置了 space。应该是这样的:data['key_value']
.
当您尝试访问字典的任何键时,请确保该键与您的字典中的键相同。
例如,您的字典是:
data={
'key1': ['val1','val2']
}
如果您尝试访问字典的键,它应该是 data['key1']
,而不是 data[' key1']
或 data['key1 ']
或 data[' key1 ']
。
这是因为你的字典里没有关键字book_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']}
我正在尝试创建一个字典,其中的键值存储在这样的列表中:
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)
可以用。如果密钥不存在,它将创建一个新密钥,并将空列表作为值,否则您将获得可以附加到的现有密钥的列表。
注意:如果您的键有尾随空格,这可能会导致“意外”行为。例如:data[' key']
与 data['key ']
。您可以使用 data.setdefault(book_name.strip(), []).append(highlight)
之类的东西来克服这个问题。
发生错误是因为您在 data['key_value ']
中放置了 space。应该是这样的:data['key_value']
.
当您尝试访问字典的任何键时,请确保该键与您的字典中的键相同。
例如,您的字典是:
data={
'key1': ['val1','val2']
}
如果您尝试访问字典的键,它应该是 data['key1']
,而不是 data[' key1']
或 data['key1 ']
或 data[' key1 ']
。
这是因为你的字典里没有关键字book_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']}