¿Puedo usar el lector CSV de Python con las tablas de Google Fusion?
-
22-10-2019 - |
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
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.