问题标签 [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.
python - Marshmallow 根据运行它的机器对时间戳的处理方式不同
我正在使用 Flask 在 python 中制作 REST API。我使用 SQLalchemy 和 Marshmallow 来处理和存储进出 API 的数据。
我有一条用于创建事件的路线。它需要一个日期时间作为 POST 有效负载的信息之一。在模型中,该字段使用 TIMESTAMP 类型。SQLalchemy 的 TIMESTAMP 类型是支持时区的日期时间。
当我在 Linux 上运行 API 时,一切正常,但是当我在 Windows 上运行它时,数据进来了,因为它应该从棉花糖的模式中传递到 load() 方法中,
post_campaign, errors = campaign_schema.load(request.get_json())
一旦它被加载到模式中,日期时间就丢失了时区数据,这对我来说是个大问题。
我没有在我的模式中做任何特殊操作,它是一种“经典”的模式。
基本上,在我的机器和其他一些机器上,我有
test_campaign (tests.test_setup.Testing) ...
<------------------>
现在 2017-05-05 09:52:39.014386+00:00 使用日期时间生成。 utcnow().replace(tzinfo=pytz.utc)
在模式中加载之前 2018-05-05 08:35:17.361864+00:00
模式中的数据 2018-05-05 08:35:17.361864+00:00
<- ----------------->
在我有的其他机器上
test_campaign (tests.test_setup.Testing) ...
<------------------>
现在 2017-05-05 09:52:39.014386+00:00
在模式加载之前2018-05-05 08:35:17.361864+00:00
架构中的数据 2018-05-05 08:35:17
<----------------->
我的模式(ma 是棉花糖):
你们中有人知道这种行为吗?
python - 序列化对象时转换对象
鉴于 :
comm_value
在序列化之前如何操作该字段?
例如,该字段comm_value
是一个字符串1234:5678
,我想将其转换为1234_5678
.
您能否就如何实现这一目标提出建议?
PS。pre_dump
看起来是正确的做法,但我不确定,因为这是我第一天使用marshmallow
python - 棉花糖:将字典转换为元组
鉴于
输入数据x
是:
marshmallow
架构如下:
让我们加载它及其数据:
如果我们打印它,我们会得到:
目标:我希望最终结果是:
zzz.data
当我这样做而不是获取 dict时,如何实现该结果(元组) ?
python - 如何以不同的名称序列化 Marshmallow 字段
Schema
我想要一个带有以下输出 json的 Marshmallow -
Marshmallow 不会序列化私人成员,所以这是我能得到的最接近的 -
但我确实需要输出 json 中的下划线。
有没有办法告诉 Marshmallow 使用不同的名称序列化字段?
python - marshmallow `validates_schema` 拒绝带有 `pass_many=True` 的未知字段
Schema
当传递一个对象列表进行验证时,我很难理解如何处理未知字段。我到目前为止:
但这显然不起作用,因为每次都会为列表中的所有项目运行验证器。因此将捕获第一个错误,并在所有项目上返回:
我试图想出一种方法来仅从original_data
对应于data
参数的单个项目中获取并仅验证该项目,但我不能真正做到这一点,因为项目没有 id 或使它们可搜索的字段......
我错过了什么吗?有针对这个的解决方法吗?
python - python 拥抱 - 不能在 MarshmallowSchema 中使用嵌套
使用 HUG 构建 Rest API,版本 2.3.0 ( https://github.com/timothycrosley/hug )
我无法在 HUG 中使用 Marshmallow 的嵌套功能。这是一些代码。
当我尝试使用此示例数据执行 POST 请求时,我在嵌套字段中得到了空数据。
使用 pdb:
任何人都可以在 HUG 中使用 Marshmallow 的嵌套功能。如果是,该怎么做?
python - 如果使用 Marshmallow,SQLAlchemy 不会创建表
我正在尝试使用 、 和 (也尝试过)创建一个项目Flask
,但是这些Flask-SQLAlchemy
工具的集成效果不佳。每次我包含一些新库时,都会出现一个新错误。flask-restplus
marshmallow
flask-marshmallow
我已经放弃使用migrations
withFlask-SQLAlchemy
因为某种原因,这个东西不起作用。但现在,问题出在marshmallow
.
我正在尝试使用模块,我认为这是问题的一部分(Flask-SQLAlchmey、flask-restplus、flask-marshmallow 等的所有示例都将所有内容放在一个文件中)
这是我的app.py:
api/__init__.py
:
database/__init__.py
:
model
我有我的应用程序,到目前为止只有一个:
database/models/User.py
:
现在,如果我使用以下代码(每次我的应用程序以调试模式、函数reset_database
、文件database/__init__.py启动时都会调用此代码):
该User
表没有创建,admin
也没有插入到表中,因为该表不存在(db.create_all()
不要创建任何东西)。
sqlite3.OperationalError: no such table: user
.
出于某种原因,如果我删除了类UserSchema
(在database/models/User.py 上),该db.create_all()
函数将创建表)。
flask - Flask-SQLAlchemy-Marshmallow 嵌套
我正在尝试使用 Flask 中的 Marshmallow 从一对多关系模型中序列化数据。我阅读了 Marshmallow 和 SQLAlchemy 文档,但无法正常工作。任何人都可以帮助我。
楷模:
架构:
我正在寻找这样的输出:
python - 来自 REST 的客户端 HTML 表的流行模式
我使用烧瓶和棉花糖构建了一个 REST API。现在我想在客户端的表中显示数据(我正在使用 vuejs)。
API 中的 JSON 包含相关对象,如下所示:
我无法将此信息直接推送到表格中。我正在寻找最佳实践:在 API 上为扁平化的“表就绪”JSON 提供 arg,或者只是在添加到表之前重新处理数据,或其他?
python - 部分严格的棉花糖模式
我有一个 Flask Rest Api,它使用棉花糖进行序列化-去现实化。Api 收到一批项目。
我想对每个项目的输入架构执行严格验证,而不是对整个请求进行验证。 这样做的目的是允许我进行细粒度的错误处理,即处理整个批处理请求并返回错误项目的验证错误。
示例时间!
假设这是我的主要 Rest Json 请求模式(注意Nested
字段列表) -
这是我的Nested field
架构-
我想要棉花糖 1) 反序列化整个请求模式和 2) 为我提供每项模式验证错误或序列化对象。使用这种行为,我将处理每个Item
. 对于每个包含验证错误的项目,我将返回一个错误对象,对于有效的项目,我将返回一个正确的响应项目。
所以对于这样的请求 -
我想按照以下方式回复 -
棉花糖是否支持这种行为?
关于实施这个有什么建议吗?
理想情况下,我想要一个包含尽可能多的 Flask+Marshmallow 的答案(而不是自己实现逻辑)
谢谢!