Python解析CSV:提取列中完整文本遇到的截断问题
解决CSV字段含逗号导致内容截断的问题
用csv.DictReader的正确实现
Python的csv模块自带的DictReader类默认支持解析带引号包裹的含逗号字段,只要你的CSV文件格式规范(含特殊字符的字段用双引号包裹),直接按以下方式编写代码即可:
import csv def get_data(): result = [] # 根据实际文件编码调整,常见的是utf-8或latin-1 with open('tx_deathrow_full.csv', 'r', encoding='utf-8') as csv_file: # 自动识别表头,解析带引号的完整字段 reader = csv.DictReader(csv_file) for row in reader: # 将每行转换为字典并加入列表 result.append(dict(row)) return result
如果你的CSV文件用单引号包裹含逗号的字段,只需给DictReader指定quotechar参数:
reader = csv.DictReader(csv_file, quotechar="'")
用Pandas的实现
Pandas的read_csv方法同样默认支持解析带引号的字段,转换为字典列表的代码更简洁:
import pandas as pd def get_data(): # 读取CSV,自动处理带引号的字段 df = pd.read_csv('tx_deathrow_full.csv', encoding='utf-8') # 转换为每行一个字典的列表 return df.to_dict('records')
注意事项
如果字段内容仍被截断,大概率是CSV文件本身格式不规范——含逗号的字段没有用引号包裹。这种情况下需要先修正CSV文件的格式,或者自定义CSV解析规则(比如使用其他分隔符,但这需要文件本身支持)。
内容的提问来源于stack exchange,提问作者Mugge
相关产品推荐
相关产品推荐

