【发布时间】:2017-02-22 17:09:58
【问题描述】:
我正在尝试获取地震数据,并将其转换为数组,以便我可以使用该数据在地图上可视化地震。我正在写这个脚本:
import requests
import csv
def csv_to_array(a):
b = requests.get(a)
my_file = open(b, "rb")
for line in my_file:
el = [i.strip() for i in line.split(',')]
return el
我将其导入另一个模块,并且:
import csvToArray
data = csvToArray.csv_to_array(
"http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_hour.csv")
i = 1
while i < len(data):
stuff = data[i].split(',')
print stuff[1], stuff[2]
lat = float(stuff[1])
lon = float(stuff[2])
x = webMercX(lon, zoom) - cx
y = webMercY(lat, zoom) - cy
i += 1
上面脚本的其他功能是不必要的,但是当我运行它时,我得到了以下错误。
while i < len(data):
TypeError: object of type 'NoneType' has no len()
【问题讨论】:
-
因为
print没有返回任何东西:),你没有从csv_to_array返回任何东西 -
哇,这是一个愚蠢的错误(我刚刚修复了),但现在我收到以下错误:my_file = open(b, "rb") TypeError: coercing to Unicode: need string or缓冲区,找到响应它没有将 URL 识别为字符串
-
现在您只是返回文件的第一行。该函数立即在第一个
return处结束