用于将复杂数据类型转换为本机python数据类型和从本机python数据类型转换为本机python数据类型的轻量级库。

marshmallow2的Python项目详细描述


Latest versionBuild statusDocumentation

marshmallow是一个orm/odm/framework无关的库,用于将复杂的数据类型(如对象)转换为原生python数据类型和从原生python数据类型转换。

fromdatetimeimportdatefrommarshmallowimportSchema,fields,pprintclassArtistSchema(Schema):name=fields.Str()classAlbumSchema(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.data,indent=2)# { 'artist': {'name': 'David Bowie'},#   'release_date': '1971-12-17',#   'title': 'Hunky Dory'}

简而言之,棉花糖模式可用于:

  • validate输入数据。
  • 反序列化将数据输入到应用程序级对象。
  • serialize应用程序级对象到原始python类型。然后,可以将序列化对象呈现为标准格式(如json),以便在http api中使用。

立即获取

$ pip install -U marshmallow

文档

完整的文档可在http://marshmallow.readthedocs.io/获得。

要求

  • python>;=2.7或>;=3.4

marshmallow在python标准库之外没有外部依赖项,不过建议使用python-dateutil进行健壮的datetime反序列化。

生态系统

在github wiki上可以找到与棉花糖相关的库的列表:

https://github.com/marshmallow-code/marshmallow/wiki/Ecosystem

学分

贡献者

这项工程有赖于所有贡献的人。

我们非常鼓励您参与棉花糖的开发。 查看Contributing Guidelines查看 你怎么能帮忙。

感谢所有为棉花糖做出贡献的人!

Contributors

支持者

如果你觉得棉花糖有用,请考虑用 一笔捐款。你的捐赠有助于棉花糖的发展。

感谢我们所有的支持者![Become a backer]

Backers

赞助商

通过成为赞助人来支持这个项目(或者要求你的公司通过成为赞助人来支持这个项目)。 您的徽标将显示在这里,并带有指向您网站的链接。[Become a sponsor]

Sponsors

专业支持

专业支持的棉花糖现在可以通过 Tidelift Subscription

Tidelift为软件开发团队提供了购买和维护软件的单一来源, 有了最了解它的专家的专业级别保证, 同时与现有工具无缝集成。[Get professional support]

Get supported marshmallow with Tidelift

安全联系人信息

若要报告安全漏洞,请使用 Tidelift security contact。 Tidelift将协调修复和披露。

许可证

麻省理工学院许可。有关详细信息,请参阅捆绑的LICENSE文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ImageIO。写入()低质量图像   使用安卓的设备屏幕大小的java拖放图像   java Adler32重复速度非常快   java在使用Burp Suite Community Edition时遇到此错误   java是否可以在交换机中使用已存在的字符串?   java:把反斜杠看作正常字符的方法   java如何创建Criteria Builder查询来连接三个具有一对一和多对一实体关系的表?   Java Spark:如何在数据集上进行flatMap,并为后续的groupBy提供新的模式?   JavaTestNG运行每个方法,并忽略TestNG中包含的方法。xml   无法使用Java运行linux命令   java我可以用什么来代替AudioPlayer。游戏者停止();?   关于如何使用pop3使用javamail从gmail帐户删除电子邮件的java查询   java Firebase Android数据库查询(读取数据)