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

cketcham/marshmallow

Repository files navigation

marshmallow: simplified object serialization

Latest version Travis-CI

Homepage: http://marshmallow.rtfd.org/

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

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

# A "model"
class Person(object):
    def __init__(self, name):
        self.name = name
        self.date_born = datetime.now()

# A serializer schema
class PersonSchema(Schema):
    name = fields.String()
    date_born = fields.DateTime()

person = Person("Guido van Rossum")
schema = PersonSchema()
result = schema.dump(person)
pprint(result.data)
# {"name": "Guido van Rossum", "date_born": "2014-08-17T14:42:12.479650+00:00"}

In short, marshmallow schemas are 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==1.0.0-a

Documentation

Full documentation is available at http://marshmallow.rtfd.org/ .

Requirements

  • Python >= 2.6 or >= 3.3

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

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

Releases

No releases published

Packages

 
 
 

Languages

  • Python 100.0%