El lector CSV analiza incorrectamente los tabuladores después de comillas invertidas.
Estoy utilizando el lector CSV para leer un archivo TSV en Python. El código es:
f = csv.reader(open(‘sample.csv’), delimiter=’\t’)
for chunk in f:
print(chunk)
Una fila del archivo CSV separado por tabulaciones se ve así (el archivo CSV está alojado aquí):
doc | unit1toks | unit2toks | unit1txt1 | unit2txt2 | s1toks | s2toks | unit1sent | unit2sent | dir |
---|---|---|---|---|---|---|---|---|---|
GUMbiogalois | 156-160 | 161-170 | ” We zouden dan voorstellen | dat de auteur al zijn werk zou moeten publiceren | 107-182 | 107-182 | Poisson verklaarde het werk van Galois “onbegrijpelijk”, waarbij hij verklaarde dat “[Galois’] argument niet voldoende is”. “[16] | Poisson verklaarde het werk van Galois “onbegrijpelijk”, waarbij hij verklaarde dat “[Galois’] argument zou suggereren dat de auteur zijn mening zou moeten publiceren.” [16] | 1>2 |
Obtengo el siguiente resultado (el lector CSV omitió algunos espacios en tabulaciones):
[‘GUM_bio_galois’, ‘156-160’, ‘161-170’, ‘We zouden dan voorstellen\tdat de auteur al zijn werk zou moeten publiceren\t107-182\t107-182\tPoisson verklaarde het werk van Galois “onbegrijpelijk”, waarbij hij verklaarde dat “[Galois\’ ] argument niet voldoende is”. “[16]’, ‘Poisson verklaarde het werk van Galois “onbegrijpelijk”, waarbij hij verklaarde dat “[Galois\’ ] argument zou suggereren dat de auteur zijn mening zou moeten publiceren.” [16]’, ‘1>2’]
Quiero que se parezca a esto:
[‘GUM_bio_galois’, ‘156-160’, ‘161-170’, ‘”We zouden dan voorstellen’, ‘dat de auteur al zijn werk zou moeten publiceren’, ‘107-182’, ‘107-182’, ‘Poisson verklaarde het werk van Galois “onbegrijpelijk”, waarbij hij verklaarde dat “[Galois\’ ] argument niet voldoende is”. “[16]’, ‘Poisson verklaarde het werk van Galois “onbegrijpelijk”, waarbij hij verklaarde dat “[Galois\’ ] argument zou suggereren dat de auteur zijn mening zou moeten publiceren.” [16]’, ‘1>2’]
¿Cómo puedo hacer que el lector CSV maneje comillas incompletas y las conserve en mi resultado?
davy.ai
Puede usar el parámetro
quoting
de la funcióncsv.reader()
para manejar citas incompletas. El parámetroquoting
toma un valor entero, que puede ser uno de los siguientes:csv.QUOTE_MINIMAL
(0): Indica al lector que interprete las comillas solo cuando sea necesario.csv.QUOTE_ALL
(1): Indica al lector que interprete todas las comillas.csv.QUOTE_NONNUMERIC
(2): Indica al lector que interprete solo las comillas no numéricas.csv.QUOTE_NONE
(3): Indica al lector que ignore todas las comillas.Por lo tanto, puede usar el siguiente código para obtener la salida deseada: