Skip to main content

Flatten nested JSON/dicts into dot-notation keys and unflatten back

Project description

philiprehberger-flatten-json

Flatten nested JSON/dicts into dot-notation keys and unflatten back.

Installation

pip install philiprehberger-flatten-json

Usage

from philiprehberger_flatten_json import flatten, unflatten

nested = {"a": {"b": {"c": 1}}, "d": [2, 3]}

flatten(nested)
# {"a.b.c": 1, "d.0": 2, "d.1": 3}

unflatten({"a.b.c": 1, "d.0": 2, "d.1": 3})
# {"a": {"b": {"c": 1}}, "d": [2, 3]}

# Custom separator
flatten(nested, separator="/")
# {"a/b/c": 1, "d/0": 2, "d/1": 3}

# Max depth
flatten(nested, max_depth=1)
# {"a": {"b": {"c": 1}}, "d": [2, 3]}

# Prefix
flatten(nested, prefix="root")
# {"root.a.b.c": 1, "root.d.0": 2, "root.d.1": 3}

# Keep numeric keys as dict
unflatten({"a.0": 1, "a.1": 2}, list_as_dict=True)
# {"a": {"0": 1, "1": 2}}

API Reference

Function Description
flatten(data, *, separator=".", max_depth=0, prefix="") Flatten nested dict/list into dot-notation keys
unflatten(data, *, separator=".", list_as_dict=False) Restore nested structure from flat dict

Parameters

flatten()

  • data — Nested dict or list
  • separator — Key separator (default ".")
  • max_depth — Max depth to flatten, 0 = unlimited
  • prefix — String to prepend to all keys

unflatten()

  • data — Flat dict with composite keys
  • separator — Key separator used during flattening
  • list_as_dict — When True, numeric keys stay as dict keys instead of converting to lists

License

MIT

Project details


Download files

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

Source Distribution

philiprehberger_flatten_json-0.2.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

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

philiprehberger_flatten_json-0.2.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file philiprehberger_flatten_json-0.2.0.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_flatten_json-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ad2b3a758170dd0c0c4523b984954e32c529081d3a0574c52c768753e225afb0
MD5 7ef80e9a3a15ad37dbfb81af01ee675a
BLAKE2b-256 8d36ddc3729bd3cf54cbcd61048b536955037fa8bd2e8bece38cb3eec0a6c172

See more details on using hashes here.

File details

Details for the file philiprehberger_flatten_json-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_flatten_json-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34931df90ee3a97ffb9e6067d700c3cae493a1659360dff29f416bdf26c789d0
MD5 3e14efaedaef4ce7ba2a212fe469f0e7
BLAKE2b-256 f45b914c25709224578a142c7ee24431cb316a7e09651988d013b7706d594993

See more details on using hashes here.

Supported by

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