我正在尝试使用 csv 库将Google Fusion Tables API中的数据读入Python。看起来查询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 类,但基本阅读器也会显示问题
答案 0 :(得分:2)
csv.reader()
会接收类似文件的对象。
更改
reader = csv.reader(serv_resp.read())
到
reader = csv.reader(serv_resp)
或者,您可以这样做:
reader = csv.DictReader(serv_resp)
答案 1 :(得分:1)
造成问题的不是CSV模块。看看serv_resp.read()
的输出。请尝试使用serv_resp.readlines()
。