如何用Python从CSV文件中提取嵌套列表
提取CSV中被引号包裹的嵌套列表
问题描述
我有一个CSV文件,基本结构如下(1列,2行):
participant,Date and Time,yadayada,... {'Name': ...},...,"[[1, 1, 1, 0],[1, 0, 1, 1]]", 想要仅提取被引号括起来的嵌套列表。
解决方案
方法1:使用Python的csv模块(推荐)
csv模块能正确处理CSV的字段分隔和引号包裹逻辑,避免手动解析的疏漏:
import csv import ast # 替换为你的CSV文件路径 with open('your_data.csv', 'r', encoding='utf-8') as file: # 创建CSV读取器 csv_reader = csv.reader(file) # 跳过表头行 next(csv_reader) # 遍历每一行数据 for row in csv_reader: # 检查每个字段 for field in row: # 判断字段是否为嵌套列表格式 if field.strip().startswith('[') and field.strip().endswith(']'): # 将字符串转换为Python列表对象 nested_list = ast.literal_eval(field.strip()) print(nested_list)
方法2:正则表达式(适合格式规整的场景)
如果CSV的格式非常固定,也可以用正则表达式直接匹配目标内容:
import re import ast # 读取文件内容 with open('your_data.csv', 'r', encoding='utf-8') as file: content = file.read() # 匹配被双引号包裹的嵌套列表 list_pattern = r'"(\[\[.*?\]\])"' matched_lists = re.findall(list_pattern, content, re.DOTALL) # 转换为Python列表并输出 for list_str in matched_lists: nested_list = ast.literal_eval(list_str) print(nested_list)
内容的提问来源于stack exchange,提问作者HippoCortex
相关产品推荐
相关产品推荐

