● 0.1.x · pure Python · zero dependencies

Stop chaining brackets.
Start walking the path.

PyJget reads nested JSON and dictionaries with plain dot notation — "user.profile.name" instead of four pairs of brackets and a prayer.

$ pip install PyJget
Read the docs →
playground.py
Sample data

          
Try a path
jget(data, )
Result
Alice

The problem

Nested data shouldn't need a safety harness.

Without PyJget
data["user"]["profile"]["name"]

# or, defensively:
data.get("user", {}) \
    .get("profile", {}) \
    .get("name")
With PyJget
from pyjget import jget

name = jget(data, "user.profile.name")

Built for

Small footprint. Predictable behavior.

01

Pure Python

No compiled extensions, no build step. Drops into any project as-is.

00

Zero dependencies

Nothing to resolve, nothing to conflict with. Just PyJget.

.

Dot notation

Address nested keys and list indexes the way you'd say them out loud.

Safe defaults

Missing a key? You get your fallback back, not a traceback.

Kb

Lightweight

One small module. Nothing to configure, nothing to learn twice.

Easy to learn

One function. If you can write a path, you can use PyJget.

ms

Fast execution

A straightforward walk down the object graph — no regex, no parsing overhead.

[i]

List indexes

Numeric segments like users.0.email step straight into arrays.

Quickstart

From install to first extraction.

Install
Basic use
Lists
Safe defaults
# from PyPI
pip install PyJget

# then, in Python
from pyjget import jget
data = {
    "user": {
        "profile": {"name": "Alice", "age": 22}
    }
}

name = jget(data, "user.profile.name")
# "Alice"
data = {"users": [{"email": "a@x.com"}, {"email": "b@x.com"}]}

first_email = jget(data, "users.0.email")
# "a@x.com"
nickname = jget(data, "user.profile.nickname", default="Unknown")
# "Unknown" — no KeyError, no crash