Skip to content

A lightweight library for converting complex objects to and from simple Python datatypes.

License

Notifications You must be signed in to change notification settings

JeffBerger/marshmallow

This branch is 2028 commits behind marshmallow-code/marshmallow:dev.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9349e41 · May 11, 2017
Apr 25, 2017
Dec 14, 2015
May 11, 2017
May 1, 2017
Nov 11, 2015
Feb 26, 2017
Mar 18, 2017
Apr 25, 2017
Mar 10, 2017
Jan 8, 2017
Aug 25, 2015
Sep 14, 2015
Feb 26, 2017
Sep 15, 2016
Mar 20, 2017
Feb 26, 2017
Mar 10, 2017
Feb 26, 2017

Repository files navigation

marshmallow: simplified object serialization

Latest version Travis-CI Documentation

marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes.

from datetime import date
from marshmallow import Schema, fields, pprint

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

In short, marshmallow schemas can be used to:

  • Validate input data.
  • Deserialize input data to app-level objects.
  • Serialize app-level objects to primitive Python types. The serialized objects can then be rendered to standard formats such as JSON for use in an HTTP API.

Get It Now

$ pip install -U marshmallow --pre

Documentation

Full documentation is available at http://marshmallow.readthedocs.io/ .

Requirements

  • Python >= 2.7 or >= 3.4

marshmallow has no external dependencies outside of the Python standard library, although python-dateutil is recommended for robust datetime deserialization.

Ecosystem

A list of marshmallow-related libraries can be found at the GitHub wiki here:

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

Project Links

License

MIT licensed. See the bundled LICENSE file for more details.

About

A lightweight library for converting complex objects to and from simple Python datatypes.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%