2013-11-03 38 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