如何分割带有逗号以格式化数字的csv行

时间:2019-07-07 00:59:43

标签: python-3.x csv parsing

我下载了一个cvs文件使用请求,当我需要拆分时,它在数字字段中有一些格式逗号,例如:

line='2019-07-05,sitename.com,"14,740","14,559","7,792",$11.47'

当我尝试拆分时:

data = line.split(',')

它具有以下值:

  

['2019-07-05','nacion.com','“ 14','740”','“ 14','559”',   '“ 7”,'792“','$ 11.47']

我需要:

  

['2019-07-05','nacion.com','14740','14559','7792','$ 11.47']

我需要在python 3.7中解决它

欢迎任何帮助

1 个答案:

答案 0 :(得分:0)

我通常不喜欢使用正则表达式,但是这里可能没有其他选择。尝试一下-基本上可以通过两步删除内部,

import re

line='2019-07-05,sitename.com,"14,740","14,559","7,792",$11.47'

new_line = re.sub(r',(?!\d)', r"xxx", line).replace(',','').replace('xxx',',')
print(new_line)

输出

  

2019-07-05,sitename.com,“ 14740”,“ 14559”,“ 7792”,$ 11.47

您现在可以使用:

data = new_line.split(',')

说明: 正则表达式,(?!\d)选择,中所有不在两个数字之间的line.subxxx替换那些(临时)。下一个.replace通过将其替换为空来删除其余,个数字内的符号,最后,最后一个.replace通过替换临时{{ 1}}和,