Python 3.x 如何拆分带有逗号的csv行以格式化数字

Python 3.x 如何拆分带有逗号的csv行以格式化数字,python-3.x,csv,parsing,Python 3.x,Csv,Parsing,我下载了一个cvs文件,在需要拆分时使用ussing请求,但在数字字段中有一些格式逗号,如: 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'、'nac

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

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解决这个问题


欢迎任何帮助

我通常不喜欢使用正则表达式,但这里可能没有其他选择。试试这个-它基本上分两步移除内部的
s:

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)
选择
行中不在两位数之间的所有
s。
.sub
将这些(临时)替换为
xxx
s。下一个
.replace
删除剩余的
,它们是内部数字,用零替换,最后一个
。replace
恢复
分隔符,用
替换临时的
xxx
使用Pandas打开CSV或使用RegEx进行更精细的解析