Python 3.x 如何使棉花糖(>;=3.0)将fields.Dict()中的数字视为小数

Python 3.x 如何使棉花糖(>;=3.0)将fields.Dict()中的数字视为小数,python-3.x,amazon-dynamodb,marshmallow,Python 3.x,Amazon Dynamodb,Marshmallow,我有一个JSON API,其中一个字段定义为字段。Dict-数据可以包含有效的JSON,其内容由用户决定 但是,现在存在一个问题,即用户不能使用小数(需要将其存储为字符串),因为存储后端(DynamoDB)只支持Decimal而不支持float,并且传递json。加载(…parse_float=Decimal)不起作用,因为反序列化是由Marshmallow完成的 如何强制marshmallow(递归地)在字段中处理所有带有的数字。将指定为十进制s,或者强制marshmallow始终将parse

我有一个JSON API,其中一个字段定义为
字段。Dict
-数据可以包含有效的JSON,其内容由用户决定

但是,现在存在一个问题,即用户不能使用小数(需要将其存储为字符串),因为存储后端(DynamoDB)只支持
Decimal
而不支持
float
,并且传递
json。加载(…parse_float=Decimal)
不起作用,因为反序列化是由Marshmallow完成的

如何强制marshmallow(递归地)在
字段中处理所有带有
的数字。将
指定为
十进制
s,或者强制marshmallow始终将
parse_float
参数传递给JSON load

如何[…]强制棉花糖始终将
parse_float
参数传递给JSON加载

您可以指定自定义的
渲染模块

导入json
类MyJsonDecimalLoader:
@静力学方法
def加载(数据):
返回json.loads(数据,parse_float=Decimal)
类MySchema(marshmallow.Schema):
类元:
render_module=MyJsonDecimalLoader
[...]
我看不出仅仅使用棉花糖字段如何做得更好,因为dict值中的数据结构是松散定义的