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

Python读取CSV得到含字符串的列表而非嵌套列表,如何转换为目标结构

问题原因
  • CSV读取参数配置错误:你设置的分隔符delimiter=';'与实际文件的字段分隔符不匹配,你提供的输出内容里字段以逗号+空格分隔,因此csv.reader将整行识别为单个字符串元素,未做字段拆分。
  • 字段外层包裹了额外的单引号,未配置参数让csv模块自动识别去除。
  • 代码存在变量名笔误:你定义的存储读取结果的变量为PriceListGetAG,但循环中获取长度调用的是未定义的GreenHomeSelect_PriceListGetAG,运行时会触发NameError。
解决方案

方案1:修正CSV读取参数(推荐)

读取时直接配置匹配的参数,一步得到目标嵌套列表结构,代码如下:

import csv

with open('/home/developer/Desktop/csv/JE_csv/JP_Preisliste_GreenHome_Select_ab_29-10.2021.csv', encoding='utf-8-sig') as csv_data:
    # delimiter设为逗号匹配字段分隔,quotechar设为单引号自动去除字段外层引号,skipinitialspace跳过逗号后的空格
    csv_reader = csv.reader(csv_data, delimiter=',', quotechar="'", skipinitialspace=True)
    PriceListGetAG = list(csv_reader)
    # 修正变量名,直接遍历打印每行
    for elem in PriceListGetAG:
        print(elem)

运行后输出即为你需要的结构:['14844', '26.10.2021', 'JP_C24_002', 'GreenHome Select', '01067']

方案2:对已读取的字符串做二次转换

如果不方便修改读取逻辑,可对已得到的字符串做拆分处理:

# 示例:单条数据处理
raw_item = ["'14844', '26.10.2021', 'JP_C24_002', 'GreenHome Select', '01067'"]
processed_item = [field.strip("'") for field in raw_item[0].split(', ')]
print(processed_item)

# 全量数据批量处理
processed_list = []
for raw_item in PriceListGetAG:
    processed_item = [field.strip("'") for field in raw_item[0].split(', ')]
    processed_list.append(processed_item)

内容的提问来源于stack exchange,提问作者Muhammad Hassan Nasir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:06:02