Python: urllib 问题
Python: Urllib problems
我是计算机科学的新手。在我的 class 中,我们正在处理一个处理地震数据和文本文件的项目,具体来自以下站点:
http://www.choongsoo.info/teach/mcs177-sp12/projects/earthquake/earthquakeData-02-23-2012.txt
这是项目的信息。
为采用格式 YYYY/MM/DD 的两个日期的过程 parseEarthquakeData 编写合同、文档字符串和实现,从上述 USGS URL 和 returns a 访问地震数据代表纬度、经度、震级和深度的四个数字列表的列表。外部列表应包含给定日期之间每次地震的这四个数字列表之一。
注意:如果您有第一版教科书,它有两个错误已在第二版中得到纠正。首先,第一版教科书有一个错字:用urllib.request代替urllib。其次,请记住,您需要将从网络上读取的任何内容解码为 ASCII。例如,如果将字符串读入变量 myString,则可以通过以下方式对其进行解码:
decodedString = 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合同是空的,因为我通常最后做。
看起来您可能在编写代码之前浏览了一些 Python 2.7 示例?
在Python 3、urlopen函数不在urllib里面,在urllib.request
里面。所以你脚本中的第一行应该是:
from urllib.request import urlopen
然后只需使用下面的urlopen
。
但是,如果您的 class 使用 Python 2 作为其代码示例,您最好安装 Python 2.7(但请告诉您的讲师请切换到 Python 3!).
我是计算机科学的新手。在我的 class 中,我们正在处理一个处理地震数据和文本文件的项目,具体来自以下站点:
http://www.choongsoo.info/teach/mcs177-sp12/projects/earthquake/earthquakeData-02-23-2012.txt
这是项目的信息。
为采用格式 YYYY/MM/DD 的两个日期的过程 parseEarthquakeData 编写合同、文档字符串和实现,从上述 USGS URL 和 returns a 访问地震数据代表纬度、经度、震级和深度的四个数字列表的列表。外部列表应包含给定日期之间每次地震的这四个数字列表之一。
注意:如果您有第一版教科书,它有两个错误已在第二版中得到纠正。首先,第一版教科书有一个错字:用urllib.request代替urllib。其次,请记住,您需要将从网络上读取的任何内容解码为 ASCII。例如,如果将字符串读入变量 myString,则可以通过以下方式对其进行解码:
decodedString = 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合同是空的,因为我通常最后做。
看起来您可能在编写代码之前浏览了一些 Python 2.7 示例?
在Python 3、urlopen函数不在urllib里面,在urllib.request
里面。所以你脚本中的第一行应该是:
from urllib.request import urlopen
然后只需使用下面的urlopen
。
但是,如果您的 class 使用 Python 2 作为其代码示例,您最好安装 Python 2.7(但请告诉您的讲师请切换到 Python 3!).