2

次のことを行う関数を書くことになっています

2 つの日付を YYYY/MM/DD の形式で受け取り、上記の USGS URL から地震データにアクセスして、緯度、経度、マグニチュード、深さ。外側のリストには、指定された日付間の地震ごとに、これらの 4 つの数字リストのいずれかが含まれている必要があります。

この関数は 2 つの日付を取り、この URLにアクセスして地震のデータを提供します。これが私がこれまでに持っているものです。私はすでに betweenDates メソッドを作成しており、正常に動作します。3 つの日付を取り、最初の日付が最後の 2 つの日付の間にある場合は true を返します。ここまでの私のparseEarthquakeです。

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

何が問題なのかわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

5

引用符を忘れました:

aline = aline.decode('ascii')

あなたが現在行っていることは、組み込み関数を渡すことです。asciiこれはdecode混乱を招き、現在表示されているエラーをスローしました。

これで問題が解決するはずです。

于 2013-11-03T16:09:44.143 に答える