繁体   English   中英

python替换中需要一个整数

[英]python an integer is required in replace

这是我的代码

for date in self.getDateRange():
          date = date.replace('-','/')

这是getDateRange函数:

def getDateRange(self):
    from datetime import date, datetime, timedelta
    return self.perdelta(date(2000, 01, 01), date(2015, 8, 03), timedelta(days=1))

def perdelta(self, start, end, delta):
    curr = start
    while curr < end:
        yield curr
        curr += delta

这是错误消息

MySpider.py", line 19, in parse
            date = date.replace('-','/')
        exceptions.TypeError: an integer is required

太奇怪了,我总是能够进行替换,没有任何问题,我不知道为什么在这里

您正在使用具有自己的replace()方法的实际date对象进行操作:

 date.replace(year, month, day) 

返回具有相同值的日期,但那些通过指定关键字参数给定新值的参数除外。 例如,如果d == date(2002,12,31),则d.replace(day = 26)== date(2002,12,26)。

该方法仅采用整数。 如果要以字符串形式处理日期,则需要对其进行转换。 但是由于您已经有了对象,因此可以使用strftime()将斜线格式化为分隔符。

列表中的对象不是字符串。 它们是日期时间对象( https://docs.python.org/2/library/datetime.html )。

您应该使用date.strftime以所需的任何格式输出日期。 有关完整的格式设置选项,请参阅https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior

例如,您可能需要date.strftime('%m /%d /%Y')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM