TypeError:strptime()参数1必须是str,而不是datetime.date Python
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeError:strptime()参数1必须是str,而不是datetime.date Python相关的知识,希望对你有一定的参考价值。
在将日期转换为字符串时遇到问题,
print(type(from_date))
from_date = datetime.datetime.strptime(from_date, '%Y-%m-%d').date()
我的from_date值在ini文件中,
from_date = 2018-01-01
我的TraceBack日志是,
Traceback (most recent call last):
File "Flexi_DailyToWeekly.py", line 87, in <module>
tuesday = get_data(session,from_keyspace, from_table, to_keyspace, to_table_tuesday, to_table_wednesday, to_table_thursday, to_table_friday, from_date, to_date)
File "Flexi_DailyToWeekly.py", line 11, in get_data
from_date = datetime.datetime.strptime(from_date, '%Y-%m-%d')
TypeError: strptime() argument 1 must be str, not datetime.date'
我使用了type(from_date),它将from_date作为字符串返回。
也尝试过,
from_date = datetime.datetime.strptime(str(from_date), '%Y-%m-%d').date()
仍然存在同样的错误。
根据以下答案中的建议更改了from_date,
from_date = "2018-01-01"
错误仍然存在,
Traceback (most recent call last):
File "Flexi_DailyToWeekly.py", line 82, in <module>
from_date = datetime.datetime.strptime(from_date, '%Y-%m-%d').date()
File "/usr/lib/python3.5/_strptime.py", line 510, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "/usr/lib/python3.5/_strptime.py", line 343, in _strptime
(data_string, format))
ValueError: time data '"2018-01-01"' does not match format '%Y-%m-%d'
更换
from_date = 2018-01-01
至
from_date : 2018-01-01
在这个文件中
测试代码:
import configparser
import datetime
config = configparser.ConfigParser()
config.read('Test.ini')
print (config['DEFAULT']['date'])
from_date = config['DEFAULT']['date']
print(type(from_date))
from_date = datetime.datetime.strptime(from_date, '%Y-%m-%d').date()
print (from_date)
和Test.ini是
[DEFAULT]
date : 2018-1-1
输出是:
2018-1-1
<class 'str'>
2018-01-01
根据docs,datetime.strptime()
方法接受date_string
作为第一个参数。所以,我试过这个:
import datetime
test = datetime.datetime.strptime('2018-01-01', '%Y-%m-%d').date()
print(test)
#datetime.date(2018, 1, 1)
如果我做from_date = 2018-01-01
,我得到invalid token
type
的from_date
错误:
from_date = 2018-01-01
print(type(from_date))
File "<ipython-input-7-9e5449277912>", line 2
from_date = 2018-01-01
^
SyntaxError: invalid token
这意味着from_date
必须是一个字符串。你可以使用from_date = '2018-01-01'
,这将工作。如果我现在检查from_date
的类型,我会得到一种类string
:
from_date = '2018-01-01'
print(type(from_date))
#<class 'str'>
但是当我查看第一个Traceback日志时,它会引发一个TypeError
。这意味着存储在from_date
中的值是datetime.date
类型。考虑以下:
import datetime
from_date = datetime.date(2018, 1, 1)
test = datetime.datetime.strptime(str(from_date), '%Y-%m-%d').date()
print(test)
#2018-01-01
以上是关于TypeError:strptime()参数1必须是str,而不是datetime.date Python的主要内容,如果未能解决你的问题,请参考以下文章
datetime.strptime 不接受自定义函数传递的参数
TypeError: function() 参数 1 必须是代码,而不是 str
TypeError('"listener" 参数必须是函数');