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

vgavro/marshmallow

This branch is 3 commits ahead of, 1920 commits behind marshmallow-code/marshmallow:dev.

Folders and files

NameName
Last commit message
Last commit date
Feb 3, 2018
Jan 8, 2018
Feb 10, 2018
Jan 4, 2018
Jan 18, 2018
May 19, 2017
Dec 15, 2017
Jan 3, 2018
Feb 3, 2018
Jan 12, 2018
Jan 12, 2018
Jan 3, 2018
Aug 25, 2015
Sep 14, 2015
Feb 26, 2017
Jan 4, 2018
Mar 20, 2017
Feb 26, 2017
Aug 16, 2017
Oct 19, 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

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%