IP作为Python关联/字典数组索引/键
我试图将assoc数组索引设置为IP,以便跟踪它们在数据包中出现的次数IP作为Python关联/字典数组索引/键,python,arrays,Python,Arrays,我试图将assoc数组索引设置为IP,以便跟踪它们在数据包中出现的次数 log = {} if log[str(s_addr)] < 1: log[str(s_addr)] = 1 else: log[str(s_addr)] += 1 if log[str(s_addr)] > 100: data_salary = { 'protocol' : str(protocol), '
log = {}
if log[str(s_addr)] < 1:
log[str(s_addr)] = 1
else:
log[str(s_addr)] += 1
if log[str(s_addr)] > 100:
data_salary = {
'protocol' : str(protocol),
'source_ip': str(s_addr),
'dest_ip': str(d_addr),
'source_port':str(source_port),
'dest_port': str(dest_port)
}
cursor.execute(add_salary, data_salary)
cnx.commit()
print("Logged")
log={}
如果日志[str(s_addr)]<1:
日志[str(s_addr)]=1
其他:
日志[str(s_addr)]+=1
如果日志[str(s_addr)]>100:
数据_工资={
“协议”:str(协议),
“源ip”:str(s地址),
“目的地ip”:str(地址),
“源端口”:str(源端口),
“目的地端口”:str(目的地端口)
}
cursor.execute(添加薪资、数据薪资)
提交
打印(“记录”)
然而,这给了我一个关键的错误
有更好的方法吗?这会给你一个键错误,因为当你试图进行比较时,
log[str(s\u addr)]
是未定义的。尝试以下方法:
log = {
str(s_addr) : 0
}
if log[str(s_addr)] < 1:
...
log={
str(s_地址):0
}
如果日志[str(s_addr)]<1:
...
但是,值得注意的是,给定此代码,log[str(s_addr)]
每次都将重置为0;我只是在解决关键错误。我需要更多关于此代码的更大环境的信息,以便向您提供更多建议。或者,可以只制作log
acollections.defaultdict(int)
。