我试图获取地震数据,并将其转换为数组,以便我可以使用该数据在地图上可视化地震。我在写这个剧本:从URL获取CSV文件并将其转换为数组 - Python 2.7
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'返回任何东西' – ZdaR
哇,这是一个愚蠢的错误(我现在刚刚解决),但现在我得到以下错误: my_file =打开(B,“RB”) 类型错误:强迫为Unicode:需要字符串或缓冲区,响应发现 它无法识别URL作为字符串 – Oxide
现在你只需返回*第一线*文件。该函数立即结束在第一个'返回' –