问题标签 [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 回答
2811 浏览

python - python-marshmallow:仅使用一个公开的键反序列化嵌套模式

我试图通过仅从嵌套项中获取一个字段来将嵌套对象列表序列化为标量值。而不是[{key: value}, ...]我想收到[value1, value2, ...].

代码:

鉴于上述模式,我想序列化一些数据:

这按预期工作,给了我标量值列表。但是,当尝试使用上述模型反序列化数据时,数据突然无效:

我是否缺少任何配置选项,或者这根本不可能?

0 投票
1 回答
413 浏览

python - 从模型中获取 JSONAPI 模式

在我的 Rest 应用程序中,我想返回json类似的JSONAPI格式,但我需要为它创建 Schema 类并再次创建我的model. 因此,我不能从模式类中创建每个字段,而不是从DB Model.. 下面是我的模型类

我正在定义如下所示的模式。

所以在这里,idname已经定义了两次。那么是否有任何选项marshmallow-jsonapi可以在模式类中分配模型名称,以便它可以从model
注意中获取所有字段:我正在使用marshmallow-jsonapi它,我已经尝试过marshmallow-sqlalchemy,它具有该选项但它不jsonJSONAPI格式返回

0 投票
1 回答
936 浏览

python - 在 Marshmallow 中打印嵌套模式

我使用 SQLAlchemy 将这些类作为我的模型。我已经成功地让棉花糖对我的用户对象进行编码,但是它不会对嵌套的链接对象进行编码。我的 SQLAlchemy 查询正在对 fk 上的链接表进行连接,它工作正常。我无法弄清楚我的 NestedSchema 有什么问题以及为什么它不会编码!

我有一个查询我的数据库的函数,看起来像这样。这将正确返回用户和链接。

在我的烧瓶路线中,这就是我正在执行的。我能够正确取回我的用户信息,但是 Marshmallow 没有对链接部分进行编码。我知道它在那里是因为打印了 link.name[0]。我已经多次查看文档,根本无法弄清楚出了什么问题。任何提示将非常感谢。

这是返回的 json。没有链接!想不通为什么。为简洁起见,我省略了很多列。

0 投票
1 回答
1203 浏览

python - 如果缺失,棉花糖字段设置为另一个字段的值

我有这样的事情:

有什么方法可以设置build_timeoutgeneral_timeout,只有当build_timeout它本身丢失时?

0 投票
2 回答
2793 浏览

marshmallow - 从超级模式(棉花糖)继承“排除”元参数

我有一个对象层次结构和一个与之对应的模式层次结构。此层次结构中间级别的模式不包括特定的继承字段。我希望从它继承的模式将“继承”这个排除,但如果他们在他们的 Meta 类中添加自己的排除字段,情况似乎并非如此:

在上面的示例中,FinalSchema继承自IntermediateSchema(不包括 field b)并c在其自己的Meta类中排除 field。预期的行为是生成的架构将同时排除band c,但实际上它仅排除c.

当然,可以手动将超模式的排除字段包含在继承模式的排除字段中,但这不是继承的重点,而且很麻烦。

我想知道是否可以以一种优雅的方式实现所需的行为,或者模式继承的当前行为是否实际上是一个错误。

检查 marshmallow 的源代码表明,至少部分支持从超级模式的元类继承数据(即,ordered元选项值是从超级模式继承的)。

0 投票
1 回答
466 浏览

python - 将外部数据添加到 SQLAlchemy 对象集合

我正在使用 flask-sqlalchemy 和 Postgres DB 构建基于 Flask 的 API 应用程序。

  • usersDB中的表为每个用户保存一条记录。这张桌子的PK是username(这里没什么特别的)
  • performanceDB中的表保存用户性能。此表的 PK 是一个日期。此表中的每个用户都有一个名为 的列username。(我知道有人说这种结构并不理想——但它是不相关的要求所必需的)。

例子:

我使用 SQLAlchemy 访问users表。

我愿意创建 REST API,它将接收日期参数并返回所有用户的集合以及他们在该日期的表现。

什么是正确的 SQLAlchemy 查询,因此不会为每个用户单独选择性能值。

0 投票
1 回答
247 浏览

python - JSON数据到Python中的自定义对象结构

免责声明:我是面向对象 Python 的新手。

我的最终目标是一次从许多具有相同结构的 JSON 文件中提取数据,并从数据中计算出新的东西,并将所有这些存储在 MySQL 数据库中。
如何从 JSON 文件中获取数据并输入 Python 中的自定义对象结构?
我需要这样做,因为需要使用读取的每个连续 JSON 文件重新计算统计信息,并且对象的内容可能会根据累积的数据而有所不同。

一般的想法是,每个 JSON 都是一个在两支球队之间进行的足球比赛对象。
一个“比赛”对象包含两个“球队”对象,即比赛时间、观众人数和比赛日期。
“球队”对象包含球队的总得分(随球队参加的每场比赛而变化)、“惩罚”对象列表和 JSON 中可能出现或不出现的“目标”以及“球员”对象的列表,一些其中在首发名单中。
“球员”是一个对象,它有一个唯一的姓名组合、一个数字,指的是“罚球”和“进球”对象以及这些对象所具有的属性。

当“惩罚”类型对象仅通过其编号引用“玩家”对象并将信息添加到“团队”和“玩家”类型对象时,问题就开始了。

  • 我曾考虑过使用字典,但据我了解,由于球员与点球和进球联系在一起的方式,这不会奏效。
  • 我曾考虑过一个一个地检索值,但这需要一些非常难以调试的控制流类型代码,并且对象再次相互引用的方式会有困难。
  • 我已经查看了棉花糖库,但是由于作为 Python 的 OOP 新手,我仍然在努力理解简单示例的工作原理。

将传递给脚本的 JSON 字符串示例:

编辑:措辞和格式

0 投票
1 回答
5990 浏览

python-3.x - 如何在棉花糖模式中添加多个验证参数

我的一个班级模型中有以下架构:

除了验证长度之外,我还希望能够确保它facebook_profile_url永远不等于字符串"http://www.facebook.com/"

0 投票
1 回答
1174 浏览

python - 从棉花糖中的嵌套键加载

我正在尝试使用 Marshmallow 从字典中加载嵌套键,但我不知道该怎么做。

例如,我有一个字段'price'映射到传入字典的 value dictionary['price']['value']。我找不到 Marshmallow 支持此功能的内置方式,因此我尝试使用pre_load处理器来展平字典。但是,我无法让它工作。对于所有嵌套键,我的示例单元测试失败并出现此错误:

不是有效的字符串

有任何想法吗?

0 投票
1 回答
1684 浏览

flask - flask-marshmallow 一个模式中的两个 db 对象

我正在尝试序列化这个对象,这是两个表之间连接的结果:

我正在使用这个模式:

基本上,我想为连接查询提供一个模式。我正在使用:

它不起作用,我无法弄清楚问题所在。它只是返回:

任何建议都受到高度赞赏。谢谢。