使用列表理解从URL和过程数据读取

使用列表理解从URL和过程数据读取

问题描述:

我是python的新手,我试图从URL读取数据。基本上我正在阅读历史股票数据,得到收盘价并将收盘价保存在一个列表中。收盘价位于每条线的第4指数(第5列)。我想在列表理解中完成所有这些。使用列表理解从URL和过程数据读取

代码片段:

from urllib.request import urlopen 

URL = "http://ichart.yahoo.com/table.csv?s=AAPL&a=3&b=1&c=2016&d=9&e=30&f=2016" 

def downloadClosingPrice(): 
    urlHandler = urlopen(URL) 
    next(urlHandler) 
    return [float(line.split(",")[4]) for line in urlHandler.read().decode("utf8").splitlines() if line] 

closingPriceList = downloadClosingPrice() 

上面的代码只是正常工作。我能够读取和获取所需的数据。然而,出于好奇,列表理解的代码能够以更简单还是更简单的方式编写?

谢谢...

我也尝试了不同的方式,这是我可以如何通过不同形式的列表中理解的做同样的:

return [float(line.decode("utf8").split(",")[4]) for line in urlHandler if line] 
#  return [float(line.decode("utf8").split(",")[4]) for line in urlHandler.readlines() if line] 
#  return [float(line.split(",")[4]) for line in urlHandler.read().decode("utf8").splitlines() if line] 

第一个是更好,因为它读取一行一行地保存内存。当然,它更简单,更易于理解。