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.
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.
Source Distribution
transmogrifydict-1.1.3.tar.gz
(11.8 kB
view hashes)
Built Distribution
Close
Hashes for transmogrifydict-1.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6232dc1dec2ac52fc27cde22e68f21bd037f12bbdeca4b32d899e12308ca639 |
|
MD5 | dcac761f766d7e6a947cb695d17efa62 |
|
BLAKE2b-256 | ed69ce3cfa3ca6a34ad37729580b3784c15d73d7ae5811ac5c809e7d454f5145 |