You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何从CSV文件构建以FortiGate地址组为键的IP列表字典

你当前的代码存在两个问题:一是重复遇到同组名时会覆盖已有的列表为空白,二是没有执行IP地址的追加操作,另外还要注意跳过CSV的表头行。

修改后的代码如下:

import csv

result_dict = {}
with open('hosts.csv', 'r') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    # 跳过表头行
    next(reader)
    for row in reader:
        # 跳过组名为空的行
        if not row[2].strip():
            continue
        group_name = row[2]
        ip_addr = row[1]
        # 如果组名不存在,先初始化空列表
        if group_name not in result_dict:
            result_dict[group_name] = []
        # 把当前IP追加到对应组的列表里
        result_dict[group_name].append(ip_addr)

运行后result_dict就是你需要的结构:{'AIXGROUP1': ['10.0.0.1', '10.0.0.2'], 'AIXGROUP2': ['10.0.0.3', '10.0.0.4']}

你也可以用collections.defaultdict简化写法,无需手动判断键是否存在:

import csv
from collections import defaultdict

result_dict = defaultdict(list)
with open('hosts.csv', 'r') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    next(reader)
    for row in reader:
        if row[2].strip():
            result_dict[row[2]].append(row[1])
# 如果需要转成普通字典,可加:result_dict = dict(result_dict)

内容的提问来源于stack exchange,提问作者naclava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:36:03