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

如何读取CSV文件数据存入字典并生成图表 循环实现方法指导

实现代码

你可以直接基于需求改造原有代码,不需要额外引入第三方依赖:

import csv

# 初始化连通关系字典
connection_dict = {}

# 读取连通表构建站点连通关系
with open('lineDefinition.csv', newline='') as f:
    for row in csv.DictReader(f):
        s1 = int(row['station1'])
        s2 = int(row['station2'])
        # 双向添加连通关系
        if s1 not in connection_dict:
            connection_dict[s1] = []
        connection_dict[s1].append(s2)
        if s2 not in connection_dict:
            connection_dict[s2] = []
        connection_dict[s2].append(s1)

# (可选)如果需要用站点名称代替编号,读取站点表生成映射
station_map = {}
with open('stations.csv', newline='') as f:
    for row in csv.DictReader(f):
        st_id = int(row['id'])
        st_name = row['display_name'] if row['display_name'] != 'NULL' else row['name']
        station_map[st_id] = st_name

# (可选)生成站点名形式的连通字典
name_connection_dict = {
    station_map[k]: [station_map[v] for v in val] 
    for k, val in connection_dict.items()
}

# 验证输出
print("编号形式连通字典:", connection_dict)
print("名称形式连通字典:", name_connection_dict)

逻辑说明

  • 遍历lineDefinition.csv的每一行时,双向添加两个站点的连通关系,符合地铁/铁路站点的无向连通特性
  • 所有站点编号统一转成整数格式,避免CSV读取默认的字符串类型导致匹配出错
  • 可选的名称转换逻辑优先使用display_name字段,为空时 fallback 到name字段,适配示例中的NULL值情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:27:04