โ— Shell
clean mode source โ†—

Add AttrDict to JSON module for use with object_hook

Skip to content

Navigation Menu

Sign in

Appearance settings

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

Closed as not planned

@rhettinger

Description

AttrDict is used improve the readability of nested data access from JSON files. Compare:

 config.servers.setup.interfaces.mgmt.protocol
 config["servers"]["setup"]["interfaces"]["mgmt"]["protocol"]

Victor's research showed that tooling this is very popular in Python world and the implementation dates back quite far. At first I suggested I suggested extending SimpleNamespace(); instead, Guido recommended putting this is the JSON module which is where it would primarily be used:

with open('kepler.json') as f:
    kepler = json.load(f, object_hook=AttrDict)
print(kepler.orbital_period.neptune)

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    No fields configured for issues without a type.

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions