为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Python 中获取特定日期范围的数据?

如何在 Python 中获取特定日期范围的数据?

慕神8447489 2021-06-30 07:08:32
我从互联网创建了一个数据集:我正在使用基于我的本地文件(JSON 输出)的以下代码:Validdata = []for new in Sampledata:    print(str(new['title']) + " | " + str(new['published'][:10]))    Validdata.append(new) 我的输出:Amnesia: Collection Hits Xbox One Next Week | 2018-08-27(USA) Building Safety Technician | 2018-08-27SONY VAIO VPCCA15FG DRIVERS DOWNLOAD | 2018-08-26Google Alert - windows 10 | 2018-08-27如果我们看到我有这样的数据,每个标题的末尾都有日期,我只想打印出介于特定日期范围之间的文章:我尝试使用它进行比较,但收到此错误消息:Startdate = '2018-09-01'Enddate = '2018-10-01'underDaterange = []for value in Sampledata['title']  and Sampledata['published'][:10] in range [Startdate:Enddate]:       underDaterange.append(value)错误信息: TypeError: list indices must be integers or slices, not str

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

看看内置的 datetime.strptime


from datetime import datetime


dates = ('2018-01-01', '2018-08-27', '2018-09-01', '2018-10-01')

format = '%Y-%m-%d'

start_dt = datetime.strptime('2018-08-01', format)

end_dt = datetime.strptime('2018-09-30', format)


[date for date in dates if datetime.strptime(date, format) > start_dt and datetime.strptime(date, format) < end_dt]

# ['2018-08-27', '2018-09-01']

另外,请检查您的变量命名约定和缩进的使用。


查看完整回答
反对 回复 2021-07-06
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

您的错误消息指出 use 正在使用字符串作为范围函数中的索引。


创建日期对象:


from datetime import date


start_date = date(2017, 1, 1)

end_date = date(2018, 10, 4)

在 range 函数中使用日期作为 int:


range(int((end_date - start_date).days))


查看完整回答
反对 回复 2021-07-06

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号