2013-11-03 110 views
2

我应该写,做一个函数以下的Python:用故障解码(ASCII)

写合同,文档字符串,以及实施的过程parseEarthquakeData采用两个日期格式YYYY/MM/DD从上述USGS网址访问地震数据,并返回表示纬度,经度,大小和深度的四个数字列表。外部列表应包含给定日期之间每次地震的这些四位数列表中的一个。

该功能将需要两个日期和访问this url并给出地震数据。这是迄今为止我所拥有的。我已经写了betweenDates方法,它的工作原理应该如此。它需要三个日期,如果第一个日期在最后两个之间,则返回true。这是我迄今为止的parseEarth地震。

def parseEarthquakeData(date1, date2): 
    dataFile = urllib.request.urlopen("http://neic.usgs.gov/neis/gis/qed.asc") 
    latList = [] 
    longList = [] 
    magList = [] 
    depthList = [] 
    for aline in dataFile: 
     aline = aline.decode(ascii) 
     splitData = aline.split(',') 
     if (betweenDates(splitData[0],date1,date2)): 
      latList.append(splitData[2]) 
      longList.append(splitData[3]) 
      magList.append(splitData[4]) 
      depthList.append(splitData[5]) 
    finalList=[] 
    finalList.append(latList) 
    finalList.append(longList) 
    finalList.append(magList) 
    finalList.append(depthList) 
    return finalList 

它给了我错误。

Traceback (most recent call last): 
    File "<pyshell#1>", line 1, in <module> 
    parseEarthquakeData("2013/07/05","2013/07/10") 
    File "C:\Python33\plotEarthquakes.py", line 47, in parseEarthquakeData 
    line = aline.decode(ascii) 
TypeError: decode() argument 1 must be str, not builtin_function_or_method 

我不确定发生了什么问题。任何帮助将不胜感激。

回答

5

你忘了引号:

aline = aline.decode('ascii') 

你当前做的是通过内置的功能ascii,使decode迷糊了,扔你现在看到的错误。

这应该解决它,希望这有助于!

+0

嗯,我是个白痴。这只是打开了闸门更多的错误!虽然谢谢!这让我疯狂 – Jonerhan

+0

非常欢迎你!这使我通过了2000代表:) – aIKid