导入csv文件时,如果最后一列没有数据,读取出来的集合比抬头字段少,和数据中包含","如何处理?

  当时项目是需要导入csv文件进行处理后存入数据库持久化,在读取一行数据时,遇到了如下两个问题:

1, 因为csv文件每列数据读取出来后是一串由","号分隔的字符串,所以想将字符串变为数组(集合)时用.split(",")进行分隔,但发现一个问题,原始数据中,如果存在","时,原本一条数据就会被分隔成两条,从而出现错误.解决办法是使用.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)").这样我理解的是,使用了正则的原理来匹配,使在""中的","不被识别为分隔的",",从而不会进行错误的分隔.






2,csv文件最有一列如果没有数据,读取出来的一行数据可能是这样"A,B,C, "但使用.split时,它会自动把最后的一个空数据处理了,转换为数组后为[A,B,C],所以可以使用.split(",",-1),这样就可以把最后一个空字符也识别出来,数组为[A,B,C, ]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值