我需要将Yaml文件转换为json。但是我得到了错误
TypeError:“日期”类型的对象不可JSON序列化
我检查了其他帖子,并尝试纳入建议,但似乎无济于事。这就是我的
import yaml
import json
import datetime
def DateEncoder(obj):
if isinstance(obj, datetime.datetime):
return obj.strftime('%Y-%m-%d')
with open('./660093.yaml') as f:
print(json.dumps(yaml.load(f), default=DateEncoder))
TypeError: Object of type 'date' is not JSON serializable
当我检查yaml文件的内容时,我看到两行带有以下格式的日期
{'meta': {'data_version': 0.9, 'created': datetime.date(2013, 12, 20),
'revision': 1}, 'info': {'city': 'Abu Dhabi', 'dates': [datetime.date(2013, 11, 15)],
'gender': 'male', 'match_type': 'IT20', 'neutral_venue': 1, 'outcome':
{'by': {'runs': 32}, 'winner': 'Ireland'}, 'overs': 20,
...
...
任何帮助将不胜感激
答案 0 :(得分:1)
您的DateEncoder
仅处理datetime
个对象,而不处理date
个对象。那是你的问题。
像这样更改它:
def DateEncoder(obj):
if isinstance(obj, (datetime.datetime, datetime.date)):
return obj.strftime('%Y-%m-%d')