Próbuję parsować pliki CSV z zewnętrznego systemu, nad którym nie mam kontroli.Jak obsługiwać podwójne cudzysłowy wewnątrz wartości pól za pomocą modułu CSV?
- przecinek jest używany jako separator
- gdy komórka zawiera przecinek wtedy to owinięte w cudzysłowach i wszystkie inne cytaty uciekła z innym znak.
- (Mój problem), gdy komórka nie była zawijana w cudzysłowy, wszystkie znaki cudzysłowu są jednak wymieniane z inną kwotą.
Przykład CSV:
qw "" erty "A" "B" "C" "D EF" "" "G"
mają być analizowane jako:
[['qw"erty', 'a"b"c"d,ef""g']]
Myślę jednak, że moduł csv Pythona nie spodziewa cudzysłowów być uciekł, gdy komórka nie była zawinięta w cytując znaków w pierwszej kolejności. csv.reader(my_file)
(z domyślnie doublequote=True
) zwraca:
['qw""erty', 'a"b"c"d,ef""g']
Czy istnieje jakiś sposób, aby analizować to z modułem python csv?
Dlaczego nie zastąpić wszystkie wystąpienia '„«»”' wewnątrz podwójnych cytatów z '„\\ "” '' csv' Następnie czytelnik powinien być w stanie pracować normalnie –
Twój cudzysłów i znak ucieczki są takie same? –
Fragment @JackManey "wewnątrz podwójnych cytatów" był niepotrzebny, ale ogólnie myślę, że zadziała, pod warunkiem, że uniknę też wszystkich znaków \ '. – matf