我的功能是从这个网站上获取数据,收集地震的纬度、经度、深度和震级。第二个函数“colorCode”应该获取地震的深度并返回一个颜色值。这就是我被困的地方。我试图使数据成为float,这样我就可以使用if语句并将其与int进行比较,但它仍然表示不能将其转换为float。有什么想法吗?(如果我以不正确的格式发布代码,请原谅)
import urllib
#parseEarthquake: int --> list-of-float
def parseEarthquakeData(numberofearthquakes):
URLonWeb = urllib.urlopen("http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.csv")
lines = URLonWeb.readlines()
numberoflines = len(lines)
numberoftimes = 0
index = 1
myaccumalator = []
for numberoftimes in range(numberofearthquakes):
while index < (numberofearthquakes + 1):
line = lines[index]
data = line.split(",")
latitude = float(data[1])
longitude = float(data[2])
depth = float(data[3])
magnitude = float(data[4])
if magnitude < 2.5:
magnitude = 2.5
myList = [[latitude, longitude, depth, magnitude]]
myaccumalator = myaccumalator + myList
index = index + 1
return(myaccumalator)
#return [latitude, longitude, depth, magnitude]
def colorCode(numberofQuakes):
data = parseEarthquakeData(2)
data =str(data)
realdata = data.split()
if realdata[2] <34:
print 'orange'
if realdata[2] >=34<70:
print 'yellow'
if realdata[2] >=70<150:
print 'green'
if realdata[2] >=150<300:
print 'blue'
if realdata[2] >=300<500:
print 'purple'
if realdata[2] >=500:
print 'red'
Python有一个非常方便的
csv.DictReader
模块来实现您要实现的目标。我稍微修改了一下您的代码,使其更简短、更易读:dictReader
将每一行转换成一个字典,其中包含来自csv文件的相应头。这样做很好,因为与列表相比,结构化数据在字典中的可读性要高得多(您不必记住哪个位置是什么)。在你也有一些问题的数字比较在你的颜色代码方法,比较你的与我改变它。我也不知道你想用
data =str(data)
实现什么我没有实现整个颜色逻辑,但你应该能够适应你的需要。在
相关问题 更多 >
编程相关推荐