Posso usare il lettore CSV di Python con Google Fusion Tables?
-
22-10-2019 - |
Domanda
Sto cercando di leggere i dati da Google Fusion Tables API in Python utilizzando il csv biblioteca. Sembra che l'interrogazione dei dati restituisce API CSV, ma quando provo e lo uso con csv.reader , sembra manipolare i dati e di dividerlo in ogni personaggio e non solo sulle virgole e ritorni a capo . Mi sto perdendo un passo? Ecco un esempio che ho fatto per illustrare, utilizzando una tabella pubblica:
#!/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
In definitiva sarei usando il csv.DictReader di classe, ma la base di Lettore mostra il problema così
Soluzione
csv.reader()
prende in un file come oggetto.
Cambia
reader = csv.reader(serv_resp.read())
a
reader = csv.reader(serv_resp)
In alternativa, si potrebbe fare:
reader = csv.DictReader(serv_resp)
Altri suggerimenti
Non è il modulo CSV che sta causando il problema. Date un'occhiata a l'output di serv_resp.read()
. Provate ad usare serv_resp.readlines()
invece.