我下载了一个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中解决它
欢迎任何帮助
答案 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
。 .sub
用xxx
替换那些(临时)。下一个.replace
通过将其替换为空来删除其余,
个数字内的符号,最后,最后一个.replace
通过替换临时{{ 1}}和,
。