Pregunta

Estoy tratando de leer datos de Google Fusion Tablas API en Python usando el CSV biblioteca. Parece que consultar la API devuelve datos de CSV, pero cuando intento usarlos con CSV.Reader, parece destrozar los datos y dividirlos en cada personaje en lugar de solo en las comas y las nuevas líneas. ¿Me estoy perdiendo un paso? Aquí hay una muestra que hice para ilustrar, usando una tabla pública:

#!/usr/bin/python

import csv
import urllib2, urllib

request_url = 'https://www.google.com/fusiontables/api/query' 
query = 'SELECT * FROM 1140242 LIMIT 10'

url = "%s?%s" % (request_url, urllib.urlencode({'sql': query}))
serv_req = urllib2.Request(url=url)
serv_resp = urllib2.urlopen(serv_req)

reader = csv.reader(serv_resp.read())

for row in reader:
    print row #prints out each character of each cell and the column headings

Finalmente estaría usando el csv.dictreader clase, pero la base lector muestra el problema también

¿Fue útil?

Solución

csv.reader() toma un objeto tipo archivo.

Cambio

reader = csv.reader(serv_resp.read()) 

a

reader = csv.reader(serv_resp)

Alternativamente, podrías hacer:

reader = csv.DictReader(serv_resp)

Otros consejos

No es el módulo CSV lo que está causando el problema. Eche un vistazo a la salida de serv_resp.read(). Intenta usar serv_resp.readlines() en cambio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top