Я использую Marshmallow для отправки экземпляра моего класса Decision в JSON.Тем не менее, это также сбросит атрибуты, которые None
, например, мой атрибут score
будет преобразован в null
в JSON.После этого я не могу снова прочитать JSON, используя тот же подход.
https://repl.it/repls/VoluminousMulticoloredFacts
Последняя строка - это то место, где в данный момент происходит сбой.Мне нужно либо НЕ сбрасывать None
в JSON, либо пропускать null
во время загрузки:
import json
from marshmallow import Schema, fields, post_load
json_data = """{
"appid": "2309wfjwef",
"strategy": "First Strategy"
}"""
# Output class definition
class Decision(object):
def __init__(self, appid = None, strategy = None, score = None):
self.appid = appid
self.strategy = strategy
self.score = score
class DecisionSchema(Schema):
appid = fields.Str()
strategy = fields.Str()
score = fields.Int()
@post_load
def make_decision(self, data):
return Decision(**data)
# Deserialization into object
dec_json = json.loads(json_data)
schema = DecisionSchema()
dec = schema.load(dec_json).data
print(dec.strategy)
# Dump results back to JSON
schema = DecisionSchema()
out = schema.dumps(dec)
print(out.data)
# Load back from dump
schema = DecisionSchema()
dec = schema.load(out).data
#print(dec.strategy) # returns error currently