Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 添加到列表字典时出现KeyError_Python_List_Dictionary - Fatal编程技术网

Python 添加到列表字典时出现KeyError

Python 添加到列表字典时出现KeyError,python,list,dictionary,Python,List,Dictionary,我想使用字典来记录与IP地址相关的数据,本质上,IP地址可以有许多组与之关联,我需要捕获与该IP地址相关的组的信息(这些是无线系统上的控制器组,因此数据都与接入点的配置相关)。我想要像这样的东西: {<ip_addr>: [{group_name: my_aps, total_aps: 22, total_active_aps: 12}, {group_name: my-other_aps, total_aps: 15, total_active_aps:1

我想使用字典来记录与IP地址相关的数据,本质上,IP地址可以有许多组与之关联,我需要捕获与该IP地址相关的组的信息(这些是无线系统上的控制器组,因此数据都与接入点的配置相关)。我想要像这样的东西:

{<ip_addr>: [{group_name: my_aps, total_aps: 22, total_active_aps: 12},
             {group_name: my-other_aps, total_aps: 15, total_active_aps:14},
             {...}
            ]
}
但我得到:

KeyError: 'xxx.xxx.xxx.xxx'
(IP地址隐藏fwiw)


脚本似乎可以运行到这一点,我认为字典正在创建中。

我不确定这是否修复了错误,但至少它是一个更好的访问dict的方法

ip_list = lms_groups.get(lms_ip, [])
ip_list.append(group_details)
lms_groups[lms_ip] = ip_list

我不确定这是否能修复错误,但至少这是一个更好的访问dict的方法

ip_list = lms_groups.get(lms_ip, [])
ip_list.append(group_details)
lms_groups[lms_ip] = ip_list

选项1

dict.setdefault


选项2

collections.defaultdict


选项1

dict.setdefault


选项2

collections.defaultdict


使用
defaultdict(list)
?也许你应该写一篇演示你遇到的问题的文章。使用
defaultdict(list)
?也许你应该写一篇演示你遇到的问题的文章。我建议使用
dict.setdefault
而不是
get()
使用默认值,然后无条件重新分配。我建议使用
dict.setdefault
而不是
get()
使用默认值,然后无条件重新分配。@coldspeed谢谢,我完全不知道如何接受答案!Done@coldspeed谢谢,我完全错过了如何接受答案!多恩
lms_groups.setdefault(lms_ip, []).append(group_details)
from collections import defaultdict    
lms_groups = defaultdict(list)
...
lms_groups[lms_ip].append(group_details)