2

我正在尝试使用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类,但基本阅读器也显示了这个问题

4

2 回答 2

2

csv.reader()接受一个类似文件的对象。

改变

reader = csv.reader(serv_resp.read()) 

reader = csv.reader(serv_resp)

或者,您可以这样做:

reader = csv.DictReader(serv_resp)
于 2011-10-17T22:22:09.317 回答
1

导致问题的不是 CSV 模块。看一下 的输出serv_resp.read()。尝试serv_resp.readlines()改用。

于 2011-10-17T22:17:03.233 回答