我可以将Python的CSV阅读器与Google Fusion Tables一起使用吗?
我正在尝试通过Python中的csv库从Google Fusion Tables API读取数据。看起来查询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 个回答
1
问题不是出在CSV模块上。你可以看看serv_resp.read()
的输出结果。试试用serv_resp.readlines()
来代替。
2
csv.reader()
是用来读取像文件一样的对象。
把
reader = csv.reader(serv_resp.read())
改成
reader = csv.reader(serv_resp)
另外,你也可以这样做:
reader = csv.DictReader(serv_resp)