#python-3.x #flask #marshmallow #camelcasing #snakecasing
#python-3.x #flask #marshmallow #camelcasing #snakecasing
Вопрос:
У меня есть json:
[{
"myKey": "key"
}]
Моя схема:
_snake_case = re.compile(r"(?<=w)_(w)")
_to_camel_case = partial(_snake_case.sub, lambda m: m[1].upper())
class CamelCasedSchema(Schema):
"""Gives fields a camelCased data key"""
def on_bind_field(self, field_name, field_obj, _cc=_to_camel_case):
field_obj.data_key = _cc(field_name.lower())
class KeySchema(CamelCasedSchema):
my_key = fields.String(required=True, data_key="myKey")
Я загружаю его как:
KeySchema(many=True).load(json)
Я хочу, чтобы json [{ «MyKey»: «key» }] преобразовывался в схему, и я мог получить my_key в качестве ключа.
Прямо сейчас я получаю:
Original Error {0: {'my_key': ['Missing data for required field.']}}
Чего мне здесь не хватает?
версия marshmallow — 3.0.0rc1
Комментарии:
1. Вы хотите, чтобы ваш ключ JSON был my_key?
2. да, я хочу, чтобы при загрузке json в схему я получал [{ «my-key»: «key» }] @KrkRamaKrishna
3. Приведенный выше код работает для меня как есть (после добавления недостающего импорта).