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

如何读取CSV文件并转换为键对应值列表的Map键值对

嘿,这个需求很典型,我给你分享几种主流编程语言的实现方案,你可以根据自己的技术栈来选:

Java 实现方案

在Java里,我们可以借助基础的IO类和集合框架来完成这个转换,不用依赖第三方库的话可以这么写:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CsvToMapConverter {
    public static void main(String[] args) {
        String csvFilePath = "your-file-path.csv"; // 替换成你的CSV文件路径
        Map<String, List<String>> resultMap = new HashMap<>();

        try (BufferedReader br = new BufferedReader(new FileReader(csvFilePath))) {
            String line;
            // 跳过表头行
            br.readLine();
            while ((line = br.readLine()) != null) {
                // 按逗号分割每行数据,注意如果CSV里有带逗号的字段需要更复杂的解析,这里假设没有
                String[] parts = line.split(",");
                if (parts.length == 2) {
                    String value = parts[0].trim();
                    String key = parts[1].trim();
                    // 如果key不存在,先初始化对应的List
                    resultMap.computeIfAbsent(key, k -> new ArrayList<>()).add(value);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 打印结果
        System.out.println(resultMap);
    }
}

关键说明:

  • computeIfAbsent方法可以简化逻辑:如果Map里没有对应的key,就创建一个新的ArrayList,然后把value加进去;如果已经有key,直接往对应的List里加value。
  • 这里默认CSV里没有带逗号的字段,如果有这种情况,建议用OpenCSV这类第三方库来解析,避免手动分割出错。

Python 实现方案

Python处理这种需求更简洁,有两种常用方式:

方式1:用标准库csv模块

import csv
from collections import defaultdict

csv_file_path = "your-file-path.csv" # 替换成你的CSV文件路径
result_map = defaultdict(list)

with open(csv_file_path, mode='r', newline='', encoding='utf-8') as file:
    reader = csv.DictReader(file)
    for row in reader:
        value = row['value'].strip()
        key = row['key'].strip()
        result_map[key].append(value)

# 转成普通dict(可选,看需求)
result_map = dict(result_map)
print(result_map)

方式2:用pandas库(更简便)

如果你已经在用pandas,一行代码就能搞定:

import pandas as pd

df = pd.read_csv("your-file-path.csv")
result_map = df.groupby('key')['value'].apply(list).to_dict()
print(result_map)

关键说明:

  • defaultdict(list)会自动为不存在的key创建空列表,不用手动判断,代码更简洁。
  • pandas的groupby方法可以快速按key分组,然后把每组的value转成列表,非常高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:04:20