我正在尝试使用Google Fusion Tables API从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