仅包含年份和月份的日期对象

daG*_*vis 22 python dictionary date key

是否可以仅创建年份和月份的日期对象?我不需要一天.

In [5]: from datetime import date

In [6]: date(year=2013, month=1)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-a84d4034b10c> in <module>()
----> 1 date(year=2013, month=1)

TypeError: Required argument 'day' (pos 3) not found
Run Code Online (Sandbox Code Playgroud)

我在我的字典中使用日期对象作为键,1月20日必须与1月21日具有相同的键,因为它们在同一个月和一年中.

之前我使用了一个简单的整数作为月份数.不幸的是我也需要知道这一年!

Mar*_*ers 15

不,你做不到.对于您的用例,请使用元组:

key = (2013, 1)
Run Code Online (Sandbox Code Playgroud)

由于您不需要对值进行日期操作,因此元组就足够了.


rea*_*000 13

作为其他答案的补充,您可以使用namedtuple.

from collections import namedtuple
MyDate = namedtuple('MyDate', ['month', 'year'])
dkey = MyDate(year=2013, month=1)
Run Code Online (Sandbox Code Playgroud)


小智 6

import datetime

date = datetime.date(year=2013, month=1, day=4)
str(date.year) + '-' + str(date.month)
Run Code Online (Sandbox Code Playgroud)

  • 这是一个没有任何解释的糟糕答案。它也未能解决所提出的问题。OP 想要创建一个日期对象而不为 `day` 提供参数,这与日期对象的输出无关。 (5认同)