2011-07-05 17 views
9

A continuación tengo una cadena que representa una sola fila extraída de un archivo csv. Cada columna está separada por una coma y el valor está envuelto en "". ¿Cuál es la forma más simple de analizar el valor de cada columna en python?analizar el archivo csv separado por comas con comillas en python

"Mr","Bob","","Boberton","","President","","","","Blah, Inc. of Iowa","blah blah blah","","Grand Island","Hall County","NE","68801","7228","United States","308-111-1111","","","P.O. BOX 1111","","Grand Island","Hall County","NE","11111","1111","United States","","40.00000","-98.0000","Gasoline service stations","11111","1010101010","","","false","SINGLE_LOCATION","","","","","","","","","No","No","No","Owns","No","No","","","55.125905","","0.052369","","100","","100","0","","","1971","Low Risk","Convenience Stores & Truck Stops","1111111","1111111","111111","1111111" 

Los datos anteriores son todos una gran cadena que debe dividirse en columnas para que pueda obtener los valores. No estoy preguntando cómo cargar un archivo csv. Ya entendí esa parte.

+9

Use 'csv'. De hecho, antes de usar 'csv' intente buscar Stack Overflow para preguntas similares sobre el análisis de CSV ya que todas esas preguntas tienen ejemplos de código ya escritos. –

+2

http://docs.python.org/library/csv.html –

Respuesta

16

Python tiene un módulo para que:

http://docs.python.org/library/csv.html

import csv, sys 
filename = 'some.csv' 
with open(filename, 'rb') as f: 
    reader = csv.reader(f) 
    try: 
     for row in reader: 
      print row 
    except csv.Error, e: 
     sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e)) 
+0

Esto ayuda, pero ¿cómo obtengo un valor de una columna específica? – Sam

+0

@Sam: cada fila es una lista con una entrada por columna. –

+1

@ Sam: Como alternativa, el módulo csv tiene una clase DictReader que leerá los datos en un diccionario –

Cuestiones relacionadas