这是我面临的错误示例:
In [1]: from functools import partial
In [2]: from datetime import datetime
In [3]: datetime.strptime("2/3/2016", "%m/%d/%Y")
Out[3]: datetime.datetime(2016, 2, 3, 0, 0)
In [4]: partial(datetime.strptime, "%m/%d/%Y")("2/3/2016")
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-4-d803aff4879c> in <module>
----> 1 partial(datetime.strptime, "%m/%d/%Y")("2/3/2016")
~/miniconda3/envs/ROS/lib/python3.6/_strptime.py in _strptime_datetime(cls, data_string, format)
563 """Return a class cls instance based on the input string and the
564 format string."""
--> 565 tt, fraction = _strptime(data_string, format)
566 tzname, gmtoff = tt[-2:]
567 args = tt[:6] + (fraction,)
~/miniconda3/envs/ROS/lib/python3.6/_strptime.py in _strptime(data_string, format)
360 if not found:
361 raise ValueError("time data %r does not match format %r" %
--> 362 (data_string, format))
363 if len(data_string) != found.end():
364 raise ValueError("unconverted data remains: %s" %
ValueError: time data '%m/%d/%Y' does not match format '2/3/2016'
Run Code Online (Sandbox Code Playgroud)
如何datetime.strptime使用partial? 这是我使用方式partial或使用方式的问题datetime.strptime吗?
您首先将格式(应该是第二个参数)传递给strptimevia partial,然后传递日期字符串(应该是第一个参数),从而导致错误。
您不能像那样使用datetime.strptimewith partial,因为它不接受任何关键字参数。相反,您可以使用常规函数:
In [246]: def get_dt(string):
...: return datetime.strptime(string, "%m/%d/%Y")
...:
In [247]: get_dt("2/3/2016")
Out[247]: datetime.datetime(2016, 2, 3, 0, 0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |