Skip to main content

Python Dict Dots


A way access values in nested key-value dicts using dot notation, e.g.

Before:

data = None
if needle in haystack:
    if nested_needle in haystack[needle]:
        data = haystack[needle][nested_needle]

if not data:
    data = default_data

After:

from dictdots import DictDots

data = DictDots.get(
    "needle.nested_needle", haystack, default=default_data
)

How to


  • Run pip install DictDots
  • from dictdots import DictDots
  • DictDots.get("needle", haystack_dict, default=default_value)

DictDots supports List and Dict.

For example

from dictdots import DictDots
haystack = [
    {
        "needle": {
            "nested": "you found me",
        },
    },
]

value = DictDots.get(haystack, "0.needle.nested")

print(value)

Would output you found me.

A valid query string is a string of keys and/or indicies, separated by periods. Strings can only contain alphanumeric characters, periods, and underscores. Strings can not contain double-or-more dots. Strings can not begin or end with a dot. Each period in the string will tell DictDots to dig another layer into your nested data structure. Dict dots does not hold your hand, if you give it a bad string, e.g _hello...world, then it will just raise an InvalidQueryString.

Future


Query Language wishlist

Release files for DictDots 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for DictDots 0.2.0
File Size Uploaded
DictDots-0.2.0.tar.gz 4.8 kB Details

Release files / DictDots-0.2.0.tar.gz

Download URL DictDots-0.2.0.tar.gz
Size 4.8 kB
Tags Source
SHA-256 checksum
How to use checksums
46eb7e904cb9ff0b8a7195e1f6a932afeb51d739e046cad2a6a13a494adef2d4
BLAKE2b-256 checksum
How to use checksums
f8b6321a33a278606ad02551c4ce964c8fc02620da254615542b549ea8105740
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/3.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.9

Release history Release notifications | RSS feed

This release

0.2.0 This release

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page