Могу ли я использовать CSV -считыватель Python с таблицами Google Fusion?

StackOverflow https://stackoverflow.com/questions/7800213

Вопрос

Я пытаюсь прочитать данные из 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 класс, но база читатель Также показывает проблему

Это было полезно?

Решение

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

Изменять

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

к

reader = csv.reader(serv_resp)

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

reader = csv.DictReader(serv_resp)

Другие советы

Это не модуль CSV, который вызывает проблему. Взгляните на вывод от serv_resp.read(). Анкет Попробуйте использовать serv_resp.readlines() вместо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top