Python:Urllib问题

时间:2016-04-02 18:45:44

标签: python urllib urlopen

在计算机科学方面,我是一名新手。在我的班上,我们正在开发一个处理地震数据和文本文件的项目,特别是来自这个网站:

http://www.choongsoo.info/teach/mcs177-sp12/projects/earthquake/earthquakeData-02-23-2012.txt

以下是该项目的信息。

编写一个过程parseEarthquakeData的合同,docstring和实现,该过程以YYYY / MM / DD格式获取两个日期,从上面的USGS URL访问地震数据并返回表示纬度,经度的四个数字列表,幅度和深度。外部列表应包含给定日期之间每次地震的这四个数字列表中的一个。

注意:如果您有第一版的教科书,则会有两个错误在第二版中得到纠正。首先,第一版教科书有一个错字:使用urllib.request而不是urllib。其次,请记住,您需要将从网络上读取的任何内容解码为ASCII。例如,如果将字符串读入变量myString,则可以通过以下方式对其进行解码:

encodedString = myString.decode('ascii')

到目前为止我所拥有的是:

import urllib
#
def parseEarthquakeData(date1,date2):
    quakeFile=urllib.urlopen('http://www.choongsoo.info/teach/mcs177-sp12/projects/earthquake/earthquakeData-02-23-2012.txt')
    latitude=[]
    longitude=[]
    magnitude=[]
    depth=[]
    for i in quakeFile:
        i=i.decode('ascii')
        splitData=i.split(',')
        if betweenDates(splitData[0],date1,date2):
            latitude.append(splitData[2])
            longitude.append(splitData[3])
            magnitude.append(splitData[4])
            depth.append(splitData[5])
    totalList=[]
    totalList.append(latitude)
    totalList.append(longitutde)
    totalList.append(magnitude)
    totalList.append(depth)
    return totalList

当我将函数输入python shell时,我得到了这个:

parseEarthquakeData("2012/02/23","2012/02/22")

Traceback (most recent call last):
  File "<pyshell#68>", line 1, in <module>
    parseEarthquakeData("2012/02/23","2012/02/22")
  File "/Users/BaronRitic/Desktop/Python/Project 6/betweenDates.py", line 17, in parseEarthquakeData
    quakeFile=urllib.urlopen('http://www.choongsoo.info/teach/mcs177-sp12/projects/earthquake/earthquakeData-02-23-2012.txt')
AttributeError: module 'urllib' has no attribute 'urlopen'

我有Python版本3.5.1 我对所有条款和流程仍然相对较新。我不完全确定如何使用urllib模块。任何帮助将不胜感激!

PS合同是空的,因为我通常最后这样做。

1 个答案:

答案 0 :(得分:0)

在编写代码之前,您可能已经看过一些Python 2.7示例了吗?

在Python 3中,urlopen函数不在urllib中,它在urllib.request内。所以脚本中的第一行应该是:

from urllib.request import urlopen

然后只需使用下面的urlopen

但是,如果您的类使用Python 2作为代码示例,那么最好安装Python 2.7(但请告诉您的教师请切换到Python 3!)。