输入['trades.csv']时出错:必须为整数(类型为str)

时间:2018-10-15 16:16:55

标签: python csv date

编写一个名为“ portfolio_value”的函数,该函数采用一个参数,该参数是一个字符串,表示包含您公司全年的所有交易的文件名,并返回“ 2015-12-31”日期投资组合的总价值”。总价值是指所有拥有的股票数量乘以该股票在年底的价格。

def portfolio_value(filename):
        sum = 0
        seek_date = date(2015, 12, 31)
        with open(filename) as f:
            reader = csv.reader(f)
            for row in reader:
                y, m, d = row[3].split('-')
                current_date = date(y, m, d)
                if current_date == seek_date:
                    sum += float(row[1]) * float(row[2])
        return sum

我在输入['trades.csv']时遇到错误:我的代码需要一个整数(类型为str)。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

日期构造期望年份,月份和日期为整数。但是,您正在传递字符串。您需要先将它们转换为整数,然后再将其传递给构造函数。像这样:

current_date = date(int(y), int(m), int(d))