PYTHON处理带引号的文本
3918,唐僧,183,NULL,,
3919,"孙悟空,猪八戒",176,NULL,,
如果用split(","),是会出错的。两种办法
1,
import csv
from io import StringIO
line = '3919,"孙悟空,猪八戒",176,NULL,,'
# 将文本包装在 StringIO 对象中,以便 csv 模块可以处理字符串
csv_data = StringIO(line)
# 创建 csv 读取器
reader = csv.reader(csv_data)
# 读取一行数据
result = next(reader)
print(result)
2,
import re
line = '3919,"孙悟空,猪八戒",176,NULL,,'
# 定义正则表达式模式,匹配双引号内的内容或者逗号分隔的内容
pattern = re.compile(r'("(?:[^"]|"")*"|[^,]*)')
# 使用 findall() 方法查找匹配的内容,并去除双引号
result = [m.strip('"') for m in pattern.findall(line)]
print(result)