我正在用Python构建一个天气预报Web Scraper。我对约会有点问题。我有这样的预测天数。我需要像2019-08-29这样格式化到目前为止的格式,但是如果是本月的最后一天,我不知道如何增加月份。你知道吗
我尝试将当前月份加入到我的日期中,但如果我加入,则所有日期都与该月份相同,如:
[2019-08-29, 2019-08-30, 2019-08-31,2019-08-01,2019-08-02,2019-08-03]
而不是[2019-08-29, 2019-08-30, 2019-08-31,2019-09-01,2019-09-02,2019-09-03]
。你知道吗
所以我需要你的帮助,以检查在循环,如果一天是本月的最后一天,然后增加一个月。你知道吗
import pandas as pd
import datetime as dt
from calendar import monthrange
days = [29,30,31,1,2,3,4]
cy = int(dt.datetime.today().year)
cm = int(dt.datetime.today().month)
last_day = monthrange(cy,cm)[1]
for i,day in enumerate(days):
while (days[i] - days[i+1]) == -1:
i+=1
print(cm)
if (days[i] - days[i+1]) != -1:
print(cm)
cm += 1
print(cm)
使用内置日期时间模块
输出
使用第三方pendulum的两个备选方案,但是您也可以使用任何其他流行的第三方软件包
输出
因此,如果您所要做的只是让for循环以月为单位递增,那么这应该是可行的:
输出:
不过,此方法容易出错,因此需要添加错误处理。例如,如果当前月份是11月,并且您在天内得到
31
,那么您将得到不正确的下一次迭代的日期(2019-11-30, 2019-12-31, 2020-1-1
)。这只在days
正确并且没有任何错误的情况下才有效。你知道吗像其他人建议的那样,预先进行一些预处理,然后计算出一系列的日期可能更安全。你知道吗
相关问题 更多 >
编程相关推荐