将yaml转换为json:TypeError:类型为“date”的对象不是JSON serializab

2024-10-01 22:31:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要将yaml文件转换为json。但是我得到了错误

TypeError:“date”类型的对象不是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文件的内容时,我看到了2行日期,格式如下

^{pr2}$

任何帮助都将不胜感激


Tags: 文件对象importjsonobjyaml类型datetime
1条回答
网友
1楼 · 发布于 2024-10-01 22:31:50

您的DateEncoder只处理datetime对象,而不是date对象。这是你的问题。在

改成这样:

def DateEncoder(obj):
  if isinstance(obj, (datetime.datetime, datetime.date)):
      return obj.strftime('%Y-%m-%d')

相关问题 更多 >

    热门问题