2011-04-11 20 views
12

Cuando uso pitones csv módulo, que me muestrapitón error de módulo csv

"delimiter" must be an 1-character string" 

Mi código es así

sep = "," 
srcdata = cStringIO.StringIO(wdata[1]) 
data = csv.reader(srcdata, delimiter=sep) 

wdata[1] es una fuente de cuerdas.

¿Cómo puedo solucionar este problema?

+6

¿Puedes publicar el mensaje de error real que recibes? – multipleinterfaces

+0

Traceback por favor? –

+1

Debe aceptar la respuesta de Mahmoud: haga clic en la marca de verificación cercana. –

Respuesta

31

Lo más probable es que tiene from __future__ import unicode_literals en la parte superior de su módulo o si está utilizando 3.x pitón + Que tiene que hacer algo como esto:

sep=b"," # notice the b before the " 
srcdata=cStringIO.StringIO(wdata[1]) 
data = csv.reader(srcdata,delimiter=sep) 

Esto le dice a Python que se desea representar "," como un byte cadena en lugar de un literal unicode

+1

sí ~~, thanks.sep = b "," está bien ~~ – alwx

+1

Ahora obtengo TypeError: el delimitador se debe establecer en Python 3.3 y "delimitador" debe ser una cadena de 1 carácter en Python 3.2. – sbaechler

+0

@sbaechler que se describe aquí: https://stackoverflow.com/a/40842561/20571 –

Cuestiones relacionadas