Kann ich Pythons CSV -Reader mit Google Fusionstabellen verwenden?
-
22-10-2019 - |
Frage
Ich versuche, Daten von Google Fusion Tables API in Python zu lesen CSV Bibliothek. Es scheint, als würde die API CSV -Daten abfragen, aber wenn ich versuche, sie mit zu verwenden csv.reader, Es scheint die Daten zu merken und sie eher auf jeden Charakter als nur auf die Kommas und Newlines aufzuteilen. Vermisse ich einen Schritt? Hier ist ein Beispiel, das ich mit einer öffentlichen Tabelle veranschaulichen habe:
#!/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
Letztendlich würde ich das benutzen CSV.DICTREADER Klasse, aber die Basis Leser zeigt auch das Problem
Lösung
csv.reader()
Nimmt ein Datei-ähnliches Objekt ein.
Veränderung
reader = csv.reader(serv_resp.read())
zu
reader = csv.reader(serv_resp)
Alternativ könnten Sie tun:
reader = csv.DictReader(serv_resp)
Andere Tipps
Es ist nicht das CSV -Modul, das das Problem verursacht. Schauen Sie sich die Ausgabe an serv_resp.read()
. Versuchen Sie es zu verwenden serv_resp.readlines()
stattdessen.