我可以将Python的CSV阅读器与Google Fusion Tables一起使用吗?

2 投票
2 回答
1258 浏览
提问于 2025-04-17 04:30

我正在尝试通过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)

撰写回答