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

Python无库实现CSV文件读取至内存的问题求助

问题解决:csv_list is not defined 错误及CSV转字典修正

错误原因

  • 变量作用域问题:csv_list是read_csv函数内部的局部变量,函数外部无法直接访问,且原函数没有返回该变量,导致后续解构代码找不到它。
  • 函数调用参数错误:调用read_csv(task1.csv)时,task1.csv未加引号,Python会将其视为变量而非文件名字符串。
  • 字典推导式变量冲突:{key: value for key, value in zip(header, values)}里的key和外层循环的key重名,会导致逻辑混乱,无法正确映射表头和值。

修正后的完整代码

def read_csv(file_name):
    with open(file_name) as f:
        # 读取每行数据并分割处理,返回二维列表
        return [[val.strip() for val in r.split(",")] for r in f.readlines()]

# 调用函数并接收返回的csv数据列表
csv_list = read_csv("task1.csv")

# 将数据转换为字典结构
(_, *header), *data = csv_list
csv_dict = {}
for row in data:
    key, *values = row
    # 使用不同临时变量避免命名冲突,正确映射表头和对应值
    csv_dict[key] = {h: v for h, v in zip(header, values)}

关键修正点说明

  1. 让read_csv函数返回处理后的二维列表,外部代码通过接收返回值获取csv_list。
  2. 调用函数时传入带引号的文件名字符串,确保Python识别为文件路径。
  3. 字典推导式改用h和v作为临时变量,避免与外层循环的key变量冲突,保证表头和数据值的对应关系正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:16:04