You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python日期范围生成的结果存储到列表变量中

解决方法:将日期范围存储到列表变量中

嘿,这个需求很容易实现,咱们只需要调整循环里的逻辑,同时先修正原代码里的几个小问题,确保功能正常:

首先,先指出原代码里的两个明显问题:

  • 导入语句格式错误:import datetime import re import pymongo 应该拆分成单独的导入行
  • 多余的无效代码:d = collection.find_one({}) 和 d1 = collection.find_one({}) 这两行会覆盖你之前从用户输入获取的日期值,完全没必要,必须删掉

接下来,实现将日期存入列表的核心修改:

  1. 初始化一个空列表来存储日期
  2. 在daterange循环中,把每个格式化后的日期添加到列表里,而不是直接打印
  3. 循环结束后,你就可以使用这个列表做后续操作了

修改后的完整代码如下:

import datetime
import re
import pymongo
from datetime import timedelta, date

def daterange(d, d1):
    for n in range(int ((d1 - d).days)):
        yield d + timedelta(n)

# 连接数据库
uri = "mongodb://127.0.0.1:27017"
client = pymongo.MongoClient(uri)
database = client['db']
collection = database['currency']

# 获取用户输入的日期
d = input('Insert beginning date (yyyy-mm-dd): ')
d1 = input('Insert end date (yyyy-mm-dd): ')

# 从数据库查询对应日期的记录
item = collection.find_one({"date" : d})
item1 = collection.find_one({"date" : d1})

# 将数据库返回的日期字符串转为datetime对象
dataObject = datetime.datetime.strptime(item['date'], "%Y-%m-%d")
dataObject1 = datetime.datetime.strptime(item1['date'], "%Y-%m-%d")

# 初始化空列表存储日期
date_list = []
# 遍历日期范围并添加到列表
for single_date in daterange(dataObject, dataObject1):
    formatted_date = single_date.strftime("%Y-%m-%d")
    date_list.append(formatted_date)
    # 如果需要同时打印日期,保留这行即可
    print(formatted_date)

# 现在可以使用date_list变量了,比如打印整个列表查看结果
print("存储的日期列表:", date_list)

当你输入起始日期2018-05-07、结束日期2018-05-11时,date_list的内容会是:

['2018-05-07', '2018-05-08', '2018-05-09', '2018-05-10']

这样你就可以把这个列表用于后续的任何操作啦~

内容的提问来源于stack exchange,提问作者Filipe Varandas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:28:27