Я обычно не люблю использовать регулярные выражения, но здесь может не быть другого выбора. Попробуйте это - он в основном удаляет внутренние ,
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 в line
, которые не находятся между двумя цифрами. .sub
заменяет их (временно) на xxx
с. Следующий .replace
удаляет оставшиеся ,
s, которые являются внутренними числами, заменяя их ничем, и, наконец, последний .replace
восстанавливает разделители ,
, заменяя временные xxx
s ,
.