Skip to content

Instantly share code, notes, and snippets.

@andreastt
Last active October 15, 2020 11:37
Show Gist options
  • Save andreastt/d28ae7d740be19ebc8ea3541403c822c to your computer and use it in GitHub Desktop.
Save andreastt/d28ae7d740be19ebc8ea3541403c822c to your computer and use it in GitHub Desktop.
import json
class pathdict(dict):
def get(self, path, default=None):
return get(self, path, default=default)
def get(data, path, default=None):
cur, _, rest = path.partition(".")
if cur in data:
if len(rest) > 0:
return get(data[cur], rest)
else:
return data[cur]
return default
def load(fp, *args, **kwargs):
return json.load(fp, *args, object_hook=pathdict, **kwargs)
def loads(s, *args, **kwargs):
return json.loads(s, *args, object_hook=pathdict, **kwargs)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment