一个轻量级的库,用于将复杂数据类型转换为和从原生Python数据类型。
项目描述
marshmallow 是一个ORM/ODM/框架无关的库,用于将复杂数据类型(如对象)转换为和从原生Python数据类型。
from datetime import date
from pprint import pprint
from marshmallow import Schema, fields
class ArtistSchema(Schema):
name = fields.Str()
class AlbumSchema(Schema):
title = fields.Str()
release_date = fields.Date()
artist = fields.Nested(ArtistSchema())
bowie = dict(name="David Bowie")
album = dict(artist=bowie, title="Hunky Dory", release_date=date(1971, 12, 17))
schema = AlbumSchema()
result = schema.dump(album)
pprint(result, indent=2)
# { 'artist': {'name': 'David Bowie'},
# 'release_date': '1971-12-17',
# 'title': 'Hunky Dory'}
简而言之,marshmallow模式可用于
验证 输入数据。
反序列化 输入数据到应用程序级别的对象。
序列化 应用程序级别的对象到原始Python类型。序列化对象可以然后渲染为JSON等标准格式,用于在HTTP API中使用。
立即获取
$ pip install -U marshmallow
文档
完整的文档可在https://marshmallow.readthedocs.io/找到。
要求
Python >= 3.8
生态系统
有关与marshmallow相关的库列表,请参阅GitHub wiki上的内容
https://github.com/marshmallow-code/marshmallow/wiki/Ecosystem
鸣谢
贡献者
本项目的存在离不开所有贡献者。
强烈鼓励您参与marshmallow的开发。查看贡献指南,了解您如何提供帮助。
感谢所有为marshmallow做出贡献的人!
赞助商
如果您觉得marshmallow很有用,请考虑通过捐赠来支持团队。您的捐赠有助于推动marshmallow的发展。
感谢所有赞助商![成为赞助商]
赞助商
marshmallow由Route4Me赞助。
通过成为赞助商(或要求您的公司成为赞助商)来支持此项目。您的标志将在此处显示,并附有链接到您的网站。[成为赞助商]
专业支持
通过Tidelift Subscription,现在可以通过专业支持的marshmallow。
Tidelift为软件开发团队提供购买和维护其软件的单个来源,并从最了解其专家的专业级保证中无缝集成现有工具。[获取专业支持]
项目链接
许可证
MIT许可。有关更多详细信息,请参阅捆绑的LICENSE文件。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
marshmallow-3.22.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4972f529104a220bb8637d595aa4c9762afbe7f7a77d82dc58c1615d70c5823e |
|
MD5 | 55bc9b09b8557d53541521b723232133 |
|
BLAKE2b-256 | 7040faa10dc4500bca85f41ca9d8cefab282dd23d0fcc7a9b5fab40691e72e76 |
marshmallow-3.22.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 71a2dce49ef901c3f97ed296ae5051135fd3febd2bf43afe0ae9a82143a494d9 |
|
MD5 | 80e31ae08145a6760949ced9ca3eac96 |
|
BLAKE2b-256 | 3c78c1de55eb3311f2c200a8b91724414b8d6f5ae78891c15d9d936ea43c3dba |