尝试将包含日期时间对象的字典序列化为 json 的键。其他一些答案建议使用这些json.dump参数default,cls但是,这些方法似乎都没有被调用。请参阅下面的 MWE。我缺少什么?
使用Default
from datetime import datetime
import json
def default(obj):
print("Default Called")
if isinstance(obj, (datetime, date)):
return obj.isoformat()
test = {datetime(1970, 1, 1, 8, 0, 0): 10}
with open("output.json", "w") as fo:
json.dump(test, fo, default=default)
Run Code Online (Sandbox Code Playgroud)
Traceback (most recent call last):
File "test.py", line 21, in <module>
json.dump(test, fo, default=default)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 179, in dump
for chunk in iterable:
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/encoder.py", line 431, in _iterencode
yield from _iterencode_dict(o, _current_indent_level)
File …Run Code Online (Sandbox Code Playgroud)