将日期转换为字符串时遇到问题,
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'
答案 0 :(得分:0)
替换
from_date = 2018-01-01
到
from_date : 2018-01-01
ini文件中的
使用代码进行测试:
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
答案 1 :(得分:0)
根据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
的{{1}}会出现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
但是当我查看第一个 Traceback 日志时,它会引发from_date = '2018-01-01'
print(type(from_date))
#<class 'str'>
。这意味着TypeError
中存储的值的类型为from_date
。请考虑以下事项:
datetime.date