【问题标题】:Getting error on input ['trades.csv']: an integer is required (got type str)输入 ['trades.csv'] 出错:需要一个整数(获取类型 str)
【发布时间】:2018-10-15 16:16:55
【问题描述】:

编写一个名为“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)。我该如何解决这个问题?

【问题讨论】:

标签: python csv date


【解决方案1】:

日期构造需要整数表示年、月和日。但是您正在传递字符串。在将它们传递给构造函数之前,您需要将它们转换为整数。像这样的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多