问题标签 [marshmallow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
340 浏览

python - 使用棉花糖模式将字典加载到多个字典中

我想做这样的事情:

我有一个dict

我希望棉花糖模式将其转换为dict如下所示:

更新:考虑到我有另一个字典,它定义了键应该出现在哪里

我无法弄清楚实现这项工作的架构。

0 投票
3 回答
10683 浏览

python-2.7 - 如何使用棉花糖在 sqlalchemy 中序列化枚举属性

这是我的模型课

这是用于编辑更改的控制器功能

这是我在棉花糖文件中的代码

调用此更新函数时出现此错误 TypeError: <ActiveStatus.Archive: 'archive'> is not JSON serializable

0 投票
1 回答
1692 浏览

python-3.x - 使用棉花糖指定一个或多个字段

我想指定一个模式字段,它接受一个或多个资源。但是,我似乎只能指定一种行为或另一种行为。

在上面的示例中,必须定义一个列表。但是我不希望:

我可以有一个允许单个项目或多个项目的架构吗?

0 投票
0 回答
71 浏览

python - 主键字段的 Flask-Restless dump_to

我遇到了一个可能是错误的问题,但想与社区进行验证。我基本上是在尝试遵循驼峰式传输数据,然后为数据库下划线。

但是,在 person_serializer 上,由于 dump_to="idPerson",flask-restless 将不允许出站“idPerson”。出于某种原因,它检查主键是否存在并得到一个 keyError,因为实际的键是“id_person”,而不是“idPerson”。

任何帮助,将不胜感激。

关键错误如下

0 投票
0 回答
1232 浏览

python - 在棉花糖中嵌套通用字段

我正在从这里尝试棉花糖 ORM 库。我有这个表格的一般报告模式:

ReportingDataSchema是一个通用字段。它可以是不同类型的模式。我的第一直觉是继承。所以我尝试这样的事情:

marshmallow无法序列化嵌套字段,给了我以下信息:

但如果我声明ReportingQueryResultSchema为:

然后它能够​​检测嵌套模式并正确填充结果。

在中执行通用嵌套模式的正确方法是什么marshmallow

0 投票
1 回答
3763 浏览

python - 在 Python 中结合棉花糖模式定义和 OO 的最佳实践是什么?

假设在棉花糖中定义了一个简单的模式

这里的用例是使用内存对象的应用程序,以及对 JSON 的序列化/反序列化,即没有 SQL 数据库。

使用标准json库,我可以解析符合此模式的 JSON 对象,并以person1['address']['city'].

手工制作的OO模型

我可以定义一个并行的 OO 模型,并用@post_load装饰器注释我的模式,例如:

但是重复不是很好(我什至没有在模式中包含描述)。

无 OO 模型

可以说,显式 OO 模型并不买太多——它是基本的数据访问器,没有行为。我可以使用jsobject获得一些语法糖,以便我可以编写示例person1.address.city。但这似乎也不完全正确。作为一名开发人员,我没有明确的 python 类 API 可以参考以确定要使用的字段,我可以引用棉花糖模式,但这感觉非常间接。

代码生成

从棉花糖模式定义中生成上面的 OO 代码相当容易。我很惊讶似乎没有这样的图书馆。也许代码生成被认为是非常不合时宜的?它当然只适用于数据访问风格的类定义;添加非通用行为将严格禁止。

对于代码的用户,他们不需要知道使用了 codegen 方法 - 一切都将有一个明确的 API,文档与 readthedocs 中的其余代码一起可见。

动态类

另一种方法是从棉花糖定义派生的动态类。同样,据我所知,没有这样的库(尽管 python 中动态类生成方法的范围令人印象深刻,但我可能错过了一些)。可以说,与 jsobjects 方法相比,这不会给你带来太多好处,但可能会有一些优势 - 可以将它与一些具有定义行为的显式代码交织在一起。动态方法的缺点是在 Python 世界中显式优于隐式。

什么是最蟒蛇?

这里缺少库意味着我要么找不到东西,要么没有以适当的 Python 方式看待这个。我很高兴为 pypi 贡献一些东西,但在添加另一个元 OO 库之前,我想确定我已经在这里做了尽职调查。

0 投票
3 回答
2318 浏览

python - 使用棉花糖而不重复自己

根据官方 Marshmallow 文档,建议声明一个 Schema,然后有一个单独的类来接收加载的数据,如下所示:

但是,我的User课程看起来像这样:

这似乎是在不必要地重复自己,我真的不喜欢再写三遍属性名称。但是,我确实喜欢 IDE 自动完成和对定义明确的结构进行静态类型检查。

那么,是否有根据棉花糖模式加载序列化数据而不定义另一个类的最佳实践?

0 投票
1 回答
1140 浏览

python - Python Marshmallow - 自定义类成员的格式

我有棉花糖序列化器写成

有什么办法可以改变created_dateusing的输出created_date.isoformat()吗?

0 投票
0 回答
2715 浏览

python - SQLAlchemy 尝试在主键上插入空值

我必须使用 SQLAlchemy、Marshmellow 和 Flask 编写已经编写的代码,并且我试图将新用户添加到数据库中。我仍在研究代码,试图弄清楚它是否有效,但是每当我尝试向数据库添加新条目时,它都会调用我的异常 sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) null value in column "id" violates not-null constraint 这是我的 SQLAlchemy 模型 user.py

这是管理 POST 操作的 api

并且提交总是有问题我该如何解决?我正在为我工​​作而失去理智 编辑

似乎数据库已连接,因为我可以毫无问题地执行 db.session.add(user) 这是完整的回溯

0 投票
2 回答
1574 浏览

python - Python 中的 webargs / Marshmallow 可以修改字段,而不仅仅是验证它吗?

我将 Flask 与 flask-restful 和webargs 一起使用(它使用Marshmallow作为其后端)。目前,我可以通过以下方式提取我想要的字段:

到目前为止,一切都很好。但我真正想做的是确保args['name']在各种方法(“post”、“get”等)中已经去除了空格,所以我不必每次都手动处理每个变量。(去除空白只是一个例子——它可能是其他一些简单或复杂的转换)

有没有办法(通过覆盖 String 字段、定义我自己的字段或其他方式)允许args在它们到达类方法之前进行预处理?