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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top