Можно ли использовать CSV-ридер Python с Google Fusion Tables? - PullRequest
2 голосов
/ 18 октября 2011

Я пытаюсь прочитать данные из API Google Fusion Tables в Python, используя библиотеку csv .Кажется, что запрос API возвращает данные CSV, но когда я пытаюсь использовать его с csv.reader , кажется, что он искажает данные и разбивает их на каждый символ, а не только на запятые и символы новой строки.Я пропускаю шаг?Вот пример, который я сделал, чтобы проиллюстрировать, используя публичную таблицу:

#!/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

В конечном итоге я бы использовал класс csv.DictReader , но базовый reader также показывает проблему

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

csv.reader() принимает файлоподобный объект.

Изменить

reader = csv.reader(serv_resp.read()) 

до

reader = csv.reader(serv_resp)

В качестве альтернативы вы можете сделать:

reader = csv.DictReader(serv_resp)
1 голос
/ 18 октября 2011

Проблема не в модуле CSV.Посмотрите на вывод из serv_resp.read().Попробуйте использовать serv_resp.readlines() вместо.

...