簡體   English   中英

將yaml轉換為json:TypeError:類型為“ date”的對象不可JSON序列化

[英]Converting yaml to json:TypeError: Object of type 'date' is not JSON serializable

我需要將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,
...
...

任何幫助將不勝感激

您的DateEncoder僅處理datetime對象,而不處理date對象。 那是你的問題。

像這樣更改它:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM