【问题标题】:Loop with datetime使用日期时间循环
【发布时间】:2021-10-06 16:47:38
【问题描述】:

我想检索三个不同日期的信息。为此我创建了一个循环:

date = datetime.datetime.now()
date7 = date + datetime.timedelta(days=7)
date7 = date7.strftime("%Y%m%d")
date14 = date + datetime.timedelta(days=14)
date14 = date14.strftime("%Y%m%d")
dates=[]
dates.append(date7)
dates.append(date14)
dates.append(date21)

for i in dates :
  url = "https://X{}".format(dates)
  url_request = requests.get(url)
  url_request_data = url_request.json()
  print(len(url_request_data["departures"]))

我得到了错误

"KeyError: '出发'。"

但是,当我在不循环(使用单个日期测试)的情况下尝试此代码时,它可以工作。 有人可以帮我吗?我迷路了

【问题讨论】:

  • 首先,您将日期数组放入url 字符串中,您要创建什么URL?其次,打印出url_request_data 的值,看看里面有什么,如果它是一个有效的URL。
  • 在定义 url 时,不是传递列表中的每个项目,而是每次传递列表本身
  • 你为什么在这里使用格式而不是 f 字符串?

标签: python json loops datetime request


【解决方案1】:

您将数组传递到 url,而不是传递在每次迭代中更改的 i 变量 - 见下文:

for i in dates:
    url = "https://X{}".format(i) # i instead of dates
    # ... etc

这将单独插入每个日期,而不是作为数组插入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    相关资源
    最近更新 更多