Puis-je utiliser le lecteur de CSV Python avec Google Fusion Tables?
-
22-10-2019 - |
Question
Je suis en train de lire les données de Google Fusion API Tables en Python en utilisant csv bibliothèque. Il semble que l'interrogation des API retourne les données CSV, mais quand je tente de l'utiliser avec csv.reader , il semble mutiler les données et le diviser sur tous les personnages plutôt que sur les virgules et les nouvelles lignes . Est-ce que je manque une étape? Voici un exemple que j'ai fait pour illustrer, à l'aide d'une table publique:
#!/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
En fin de compte j'utiliser le csv.DictReader classe, mais la base lecteur montre la question aussi bien
La solution
csv.reader()
prend dans un fichier comme objet.
Modifier
reader = csv.reader(serv_resp.read())
à
reader = csv.reader(serv_resp)
Sinon, vous pouvez faire:
reader = csv.DictReader(serv_resp)
Autres conseils
Il est pas le module CSV qui est à l'origine du problème. Jetez un oeil à la sortie de serv_resp.read()
. Essayez d'utiliser à la place serv_resp.readlines()
.