如何修复AttributeError:类型对象'datetime.datetime'在Python中没有属性'timedelta'

hlswsv35  于 2024-01-05  发布在  Python
关注(0)|答案(3)|浏览(286)

我一直在编写一些代码来跟踪股票,并一直在使用日期时间函数来获取x号或天前,由用户输入决定。
行12,in amount_Of_Days_Ago = today - datetime.datetime.timedelta(days=amount_Of_Days_Ago)AttributeError:type object 'datetime.datetime' has no attribute 'timedelta'
这是我的代码

  1. import datetime
  2. print('How many days ago should the smaller period of time be?')
  3. amount_Of_Days_Ago = input()
  4. amount_Of_Days_Ago = int(amount_Of_Days_Ago)
  5. today = datetime.datetime.now()
  6. amount_Of_Days_Ago = today - datetime.datetime.timedelta(days=amount_Of_Days_Ago)
  7. amount_Of_Days_Ago = amount_Of_Days_Ago.strftime('%Y-%m-%d')
  8. today = today.strftime('%Y-%m-%d')
  9. amount_Of_Days_Ago = str(amount_Of_Days_Ago)
  10. today = str(today)
  11. response = requests.get("http://api.marketstack.com/v1/eod?access_key=###########&symbols=AAPL&date_from=" + amount_Of_Days_Ago + "&date_to=" + today)
  12. print(response)

字符串

ss2ws0br

ss2ws0br1#

实际上,在导入datetime之后只需要调用一次。看看文档here。考虑使用:

  1. amount_Of_Days_Ago = today - datetime.timedelta(days=amount_Of_Days_Ago)

字符串
或者:

  1. from datetime import timedelta
  2. amount_Of_Days_Ago = today - timedelta(days=amount_Of_Days_Ago)

k5hmc34c

k5hmc34c2#

你必须从datetime库中导入 timedelta 函数。如下所示:

  1. import datetime
  2. from datetime import timedelta

字符串

rbpvctlc

rbpvctlc3#

因为你使用的是datetime.datetime中的datetime,所以你会得到一个错误。

  1. import datetime
  2. liste = {'latest_time': datetime.datetime(2000, 1, 5, 0, 0), 'earliest_time': datetime.datetime(2017, 12, 4, 0, 0)}
  3. print(liste['latest_time'])
  4. liste = {'latest_time': datetime.datetime(2000, 1, 5, 0, 0), 'earliest_time': datetime.datetime(2017, 12, 4, 0, 0)}

字符串

  1. from datetime import datetime
  2. liste = {'latest_time': datetime(2000, 1, 5, 0, 0), 'earliest_time': datetime(2017, 12, 4, 0, 0)}
  3. print(liste['latest_time'])
  4. liste = {'latest_time': datetime(2000, 1, 5, 0, 0), 'earliest_time': datetime(2017, 12, 4, 0, 0)}

展开查看全部

相关问题