¿Cómo leer líneas de una variable CSV en una matriz multidimensional en Python?

La cadena se ve así:

x = '''"High";"10";"Assigned";"2012/06/12 10:11:02"
"Low";"20";"Assigned";"2012/06/12 10:11:02"
"Medium";"30";"Assigned";"2012/06/12 10:11:02"'''

Quiero que sea así:

x = [
[High, 10, Assigned, 2012/06/12 10:11:02],
[Low, 20, Assigned, 2012/06/12 10:11:02],
[Medium, 30, Assigned, 2012/06/12 10:11:02]]

¿Cuál es la mejor manera de analizar esto?

preguntado el 12 de junio de 12 a las 15:06

3 Respuestas

>>> import csv
>>> result = [row for row in csv.reader(x.splitlines(), delimiter=';')]
>>> import pprint
>>> pprint.pprint(result)
[['High', '10', 'Assigned', '2012/06/12 10:11:02'],
 ['Low', '20', 'Assigned', '2012/06/12 10:11:02'],
 ['Medium', '30', 'Assigned', '2012/06/12 10:11:02']]

Respondido el 12 de junio de 12 a las 15:06

¡+1 por el uso de la biblioteca estándar y la sensibilidad a la posibilidad de diferentes dialectos csv! - dédalo

out = []
for line in x.splitlines():
    out.append( line.split(';') )

O, en una línea:

out = [line.split(';') for line in x.splitlines()]

Respondido el 12 de junio de 12 a las 15:06

Una sola línea usando lista de comprensión:

[line.split(';') for line in x.replace('"','').split('\n')]

da:

[['High', '10', 'Assigned', '2012/06/12 10:11:02'],
 ['Low', '20', 'Assigned', '2012/06/12 10:11:02'],
 ['Medium', '30', 'Assigned', '2012/06/12 10:11:02']]

y también se deshace " en resultado dejando solo las comillas simples '

Respondido el 12 de junio de 12 a las 16:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.