Skip to main content

Latest version Build status pre-commit.ci status 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 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'}

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

Documentation

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

Ecosystem

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

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

Credits

Contributors

This project exists thanks to all the people who contribute.

You’re highly encouraged to participate in marshmallow’s development. Check out the Contributing Guidelines to see how you can help.

Thank you to all who have already contributed to marshmallow!

Contributors

Backers

If you find marshmallow useful, please consider supporting the team with a donation. Your donation helps move marshmallow forward.

Thank you to all our backers! [Become a backer]

Backers

Sponsors

marshmallow is sponsored by Route4Me.

Routing Planner

Support this project by becoming a sponsor (or ask your company to support this project by becoming a sponsor). Your logo will be displayed here with a link to your website. [Become a sponsor]

Professional Support

Professionally-supported marshmallow is now available through the Tidelift Subscription.

Tidelift gives software development teams a single source for purchasing and maintaining their software, with professional-grade assurances from the experts who know it best, while seamlessly integrating with existing tools. [Get professional support]

Get supported marshmallow with Tidelift

License

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

marshmallow-4.3.1.tar.gz (218.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

marshmallow-4.3.1-py3-none-any.whl (49.2 kB view details)

Uploaded Python 3

File details

Details for the file marshmallow-4.3.1.tar.gz.

File metadata

  • Download URL: marshmallow-4.3.1.tar.gz
  • Upload date:
  • Size: 218.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for marshmallow-4.3.1.tar.gz
Algorithm Hash digest
SHA256 fb6b8048af08d4ab061610d5b7d3696a7e4c95337dbda880edb9f95812cabc20
MD5 5663ecbc0a3bb672d4e988294723025b
BLAKE2b-256 4ed7611e68d57e6a903c29cb33b5afec0f93b4baecacc6c6c62e33cde9eb9dcb

See more details on using hashes here.

Provenance

The following attestation bundles were made for marshmallow-4.3.1.tar.gz:

Publisher: build-release.yml on marshmallow-code/marshmallow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file marshmallow-4.3.1-py3-none-any.whl.

File metadata

  • Download URL: marshmallow-4.3.1-py3-none-any.whl
  • Upload date:
  • Size: 49.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for marshmallow-4.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e65accfbe277546df92ed7996a678c90e063e9a7c2a2f5e03f7d0b90e3768c42
MD5 3b0e571aa4ebe9082807f84973fb1efa
BLAKE2b-256 43574526ca0e214a3d158690e3393f6d547a2f8070f88d6388ab21d5b0aac8a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for marshmallow-4.3.1-py3-none-any.whl:

Publisher: build-release.yml on marshmallow-code/marshmallow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

4.3.1

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page