Могу ли я использовать CSV -считыватель Python с таблицами Google Fusion?
-
22-10-2019 - |
Вопрос
Я пытаюсь прочитать данные из 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()
вместо.