如何从CSV文件中为每个命名元组创建ID属性?

时间:2012-03-12 02:19:46

标签: python csv

我正在使用CSV模块将Yahoo的股票报价引入一个命名元组。

YahooQuote = collections.namedtuple(
    'YahooQuote', 'date, open, high, low, close, volume, adj_close')

def prices(ticker):
    # make url given ticker
    csvfile = urllib2.urlopen(url) 
    return map(YahooQuote._make, csv.reader(csvfile))

雅虎的股票报价csv格式不包括股票代码。如果我将我的命名元组类调整为包含ticker属性,我将如何修改map表达式以使其为每个命名的元组实例添加ticker参数的值?

1 个答案:

答案 0 :(得分:2)

我遗传上无法理解带有map()的代码,所以我只是将“map(f,i)”转换为“[f(x)for x in i]”所以我不喜欢不得不:

return [YahooQuote._make(x) for x in csv.reader(csvfile)]

然后在csv.reader返回的列表末尾添加自动收报机是一件简单的事情:

YahooQuote = collections.namedtuple(
    'YahooQuote', 'date, open, high, low, close, volume, adj_close, ticker')

def prices(ticker):
    # make url given ticker
    ticker_list = [ticker]
    csvfile = urllib2.urlopen(url) 
    return [YahooQuote._make(x + ticker_list) for x in csv.reader(csvfile)]