Python使用字典实现以日期为键的内容导出与搜索功能求助
解决思路
你当前代码的核心问题是把#分隔符前的IP地址作为了字典键,只需调整拆分逻辑,提取#后第一个逗号前的日期作为键即可,修改后的代码如下:
webdata = open("full_blacklist_database.txt", encoding="utf-8") mydict = {} for line in webdata: # 跳过注释行和空行 if line.startswith("#") or line.strip() == "": continue # 只拆分第一个#,避免属性内容中存在#导致拆分出错 ip_part, attr_part = line.split("#", 1) # 清理IP部分的空白字符 ip = ip_part.strip() # 处理属性部分:去除首尾空白后按逗号拆分,同时清理每个属性的前后空白 attr_list = [item.strip() for item in attr_part.strip().split(",")] # 取第一个属性即日期作为字典键 date_key = attr_list[0] # 对应值可按需组合,此处将IP和剩余属性组合为结果列表 value = [ip] + attr_list[1:] # 同一天存在多条记录的场景下,用列表存储所有结果避免覆盖 if date_key not in mydict: mydict[date_key] = [] mydict[date_key].append(value) print(mydict) searchModule(mydict)
- 如果你的数据中一天只有一条记录,可以删除列表追加的逻辑,直接赋值
mydict[date_key] = value即可。 - 调用
searchModule时,输入YYYY-MM-DD格式的日期即可查询到对应关联信息。
内容的提问来源于stack exchange,提问作者meLearner
相关产品推荐
相关产品推荐

