self = <json.encoder.JSONEncoder object at 0x00000227D20059A0>
o = datetime.date(2024, 9, 4)
def default(self, o):
"""Implement this method in a subclass such that it returns
a serializable object for ``o``, or calls the base implementation
(to raise a ``TypeError``).
For example, to support arbitrary iterators, you could
implement default like this::
def default(self, o):
try:
iterable = iter(o)
except TypeError:
pass
else:
return list(iterable)
# Let the base class default method raise the TypeError
return JSONEncoder.default(self, o)
"""
> raise TypeError(f'Object of type {o.__class__.__name__} '
f'is not JSON serializable')
E TypeError: Object of type date is not JSON serializable
E:\python\lib\json\encoder.py:179: TypeError
报错信息如上,原因是json.dumps无法对字典中的datetime时间格式数据进行转化,dumps的原功能是将dict转化为str格式,不支持转化时间,所以需要将json类部分内容重新改写,来处理这种特殊日期格式。
接口中使用参数有日期格式
所以需要将对应的日期改成字符串类型就可以解决这个问题了,所以我强行将返回的日期格式使用str进行强转
发现运行之后还是报错,
那是因为我要将这个获得日期值写入到yaml文件中,这个时候会将对应的字符串没有效果,需要手动给返回的日期加上双引号
发现运行成功