Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

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.

That dict is so cool...

Tests Coverage

Tests Coverage

Tests Coverage

Tests Coverage

Tests Coverage

Flake8

Tests Coverage

Tests Coverage

Tests Coverage

Tests Coverage

Tests Coverage

Flake8

methods

  • resolve_mapping_to_dict(mapping, source) - move values from source into a returned dict, using mapping 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 of source using path 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for transmogrifydict, version 1.1.3
Filename, size File type Python version Upload date Hashes
Filename, size transmogrifydict-1.1.3-py3-none-any.whl (6.6 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size transmogrifydict-1.1.3.tar.gz (11.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page