如何在Python中解析无分隔符且数据含引号的CSV文件?
Python解析无分隔符、全引号包裹的CSV文件
这种格式的CSV每个字段都用双引号包裹,字段之间没有常规分隔符,而是靠连续两个双引号衔接。下面是几种实用的Python解析方法:
方法1:用csv模块自定义分隔符
csv模块支持自定义分隔符,我们可以把字段间的""作为分隔符,同时处理每行首尾的引号:
import csv with open('your_file.csv', 'r') as f: for line in f: # 移除首尾的双引号和换行符 cleaned_line = line.strip().strip('"') # 以""为分隔符读取行数据 reader = csv.reader([cleaned_line], delimiter='""') row = next(reader) print(row) # 结果:['text', '1', '0.2', 'true']
方法2:字符串分割处理
直接用字符串split方法分割"",再清理掉多余的空内容:
with open('your_file.csv', 'r') as f: for line in f: # 先去掉换行符和首尾的双引号 stripped_line = line.strip().strip('"') # 按""分割成字段列表 row = stripped_line.split('""') print(row) # 结果:['text', '1', '0.2', 'true']
方法3:正则表达式提取字段
用正则匹配所有被双引号包裹的内容,直接提取字段核心值:
import re # 匹配双引号内的内容,捕获组提取核心值 pattern = re.compile(r'"([^"]+)"') with open('your_file.csv', 'r') as f: for line in f: row = pattern.findall(line) print(row) # 结果:['text', '1', '0.2', 'true']
内容的提问来源于stack exchange,提问作者Harish
相关产品推荐
相关产品推荐

