The "turn a dict from one API into a dict for another" python module.
Project description
transmogrifydict
The "map a dict from one API into a dict for another" python module.
master
develop
methods
-
resolve_mapping_to_dict(mapping, source)
- move values fromsource
into a returned dict, usingmapping
for paths and returned keys.from transmogrifydict import resolve_mapping_to_dict mapping = { 'a': 'd', 'b': 'e', 'c': 'f' } source = { 'd': 1, 'e': 2, 'f': 3 } resolve_mapping_to_dict(mapping, source) # { # 'a': 1, # 'b': 2, # 'c': 3, # }
-
resolve_path_to_value(source, path)
- fetch a value out ofsource
usingpath
as the pointer to the desired value. see docstring for path string formats.from transmogrifydict import resolve_path_to_value source = { 'd': 1, 'e': 2, 'f': 3 } found, value = resolve_path_to_value(source, 'e') print((found, value)) # (True, 2)
path
or mapping
value format
from transmogrifydict import resolve_path_to_value source = { 'some-key': { 'another-key': '123' } } # dot notation can be used to descend into dictionaries. resolve_path_to_value(source, 'some-key.another-key') # (True, '123') source = { 'some-key': '{"another-key":"123"}' } # dot notation can also be used to descend into json strings that are dictionary like resolve_path_to_value(source, 'some-key.another-key') # (True, '123') source = { 'some-key': { 'another-key': ['1', '2', '3'] } } # square brackets can be used to get specific indexes from a list resolve_path_to_value(source, 'some-key.another-key[1]') # (True, '2') source = { 'some-key': { 'another-key': [ { 'filter-key': 'yeah', 'each-key': 'a', }, { 'filter-key': 'yeah', 'each-key': 'b', }, { 'filter-key': 'nah', 'each-key': 'c', } ] } } # dot notation can be used after square brackets if the list contains dict-like values resolve_path_to_value(source, 'some-key.another-key[1].each-key') # (True, ['b']) # square brackets can be used to iterate over arrays to descend into the items resolve_path_to_value(source, 'some-key.another-key[].each-key') # (True, ['a', 'b', 'c']) # when iterating over a list, a filter can be applied using [key=value] resolve_path_to_value(source, 'some-key.another-key[filter-key=yeah].each-key') # (True, ['a', 'b']) source = { 'a-key': [ { 'b-key': { 'c-key': 1, 'd-key': 2, } }, { 'b-key': { 'c-key': 1, 'd-key': 3, } }, { 'b-key': { 'c-key': 0, 'd-key': 4, } } ] } # tidle notation can be used to filter on sub keys of dict list items. resolve_path_to_value(source, 'a-key[b-key~c-key=1].b-key.d-key') # (True, [2, 3, 4]) #
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size transmogrifydict-1.1.3.post1-py3-none-any.whl (6.7 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size transmogrifydict-1.1.3.post1.tar.gz (11.8 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for transmogrifydict-1.1.3.post1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e624db49b400e2c32e26ad139f9d45d19156e06ffeac17f808453408cc0ea16 |
|
MD5 | 0a98a761283fb9f3166016881ce27a3e |
|
BLAKE2-256 | 384f705a865d700e8e1858c8adbabd787cf1f5beb246a8b0d46988a45c8b617f |
Close
Hashes for transmogrifydict-1.1.3.post1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38991572abd66ea7a657917be94751cf32278f5d742b5d2fef3963b34211d05e |
|
MD5 | 7a2f92ebdea8ea96220bda57c6f387e9 |
|
BLAKE2-256 | fad5e5bef42bb9378149ad909c070010666a1d2620ac8eae3235e52a99832b5d |