Library created to map keys in dictionaries.
Project description
With this library you can map your dictionaries easily, you just need to pass it:
1- output: the dictionary you want to receive, the variables you want to map must go with {}
from DictMaper import MapDict
result = MapDict(
output={
"{var_1}": "Hi! {var_2}, welcome to {company_name}"
"company name":"{company_name}"
}
......
)
2- context: context is the data from which the information will be obtained:
from DictMaper import MapDict
result = MapDict(
output={
"{var_1}": "Hi! {var_2}, welcome to {company_name}"
"company name":"{company_name}"
}
context={
"user": {
"name":"user name",
"email":"test_email@..."
}
"company":{
"information":{
"name":"Company name",
"id":"1234"
}
}
}
)
3- vars: vars are the variables you want to map to your output and the value is where they are located within context:
from DictMaper import MapDict
result = MapDict(
output={
"{var_1}": "Hi! {var_2}, welcome to {company_name}",
"company":"{company_name}"
}
context={
"user": {
"name":"user name",
"email":"test_email@..."
},
"company":{
"information":{
"name":"Company name",
"id":"1234"
}
}
}
vars={
"var_1": "user.email",
"var_2": "user.name",
"company_name": "company.information.name"
}
)
That’s all, process the data making .process() and as a result you will have:
from DictMaper import MapDict
result = MapDict(...).process()
{
"test_email@...": "Hi! user name, welcome to Company name",
"company":"Company name"
}
```
If your context dictionary contains nested dictionaries or lists, you can use this flag variable complex_dict_mapping=True to process more complex dictionaries.
But you must take into account the following restrictions:
- If the 'context' dictionary contains a key with a list, the name of the key must be the same in the 'vars' dictionary and in the 'output'
- You can only search at level 1 depth in the keys that contain LISTS in the 'context' dictionary, where the paths defined in the 'variables' dictionary will be searched.
- It is not possible to place a variable from the 'vars' dictionary in the 'output' dictionary as a key in any of the values of the dictionaries that are within some list that are within the same 'output' dictionary.
Example:
1- output: the dictionary you want to receive, the variables you want to map must go with {}
```python
output = {
"contacts": [{
"name": "{var_name}",
"email": "{var_email}",
"adresses": [{"main address": "{var_main_address}"}]
}],
"company name":"{company_name}"
}
2- context: context is the data from which the information will be obtained:
context = {
"contacts": [
{
"name":"user name",
"email":"test_email@...",
"address": {"main": "customer address"}
},
{
"name":"user2 name2",
"email":"test2_email2@...",
"address": {"main": "customer address2"}
}
],
"company":{
"information":{
"name":"Company name",
"id":"1234",
}
}
}
3- vars: vars are the variables you want to map to your output and the value is where they are located within context:
vars = {
"contacts": [{
"var_name": "name",
"var_email": "email",
"var_main_address": "address.main",
}],
"company_name": "company.information.name",
}
That’s all, process the data doing .process() and as a result you will have: `python from DictMaper import MapDict result = MapDict( output=output, context=context, vars=vars, complex_dict_mapping=True ) result.process() { "contacts":[ { "name":"user name", "email":"test_email@...", "adresses":[ { "main address":"customer address" } ] }, { "name":"user2 name2", "email":"test2_email2@...", "adresses":[ { "main address":"customer address2" } ] } ], "company name":"Company name" }
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dictmaper-0.0.3.tar.gz.
File metadata
- Download URL: dictmaper-0.0.3.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.8.3 requests/2.27.1 setuptools/44.1.1 requests-toolbelt/1.0.0 tqdm/4.64.1 CPython/2.7.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e0a7ca6fc01f289c025b4a0c4b9e0cba2f1ce1e3411a6de9c33a8e1795f9af2
|
|
| MD5 |
7d9a30c3921cb08730001aa93668425d
|
|
| BLAKE2b-256 |
11147fc9eb15dd2d8234c0217d57219c28d79f3bac0fbc6150018bad91429475
|
File details
Details for the file dictmaper-0.0.3-py3-none-any.whl.
File metadata
- Download URL: dictmaper-0.0.3-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.8.3 requests/2.27.1 setuptools/44.1.1 requests-toolbelt/1.0.0 tqdm/4.64.1 CPython/2.7.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7107a84f8ce2a689b190585e4c30cbca5f7a0c448ca934599dc3b47916dc6556
|
|
| MD5 |
e0d236cd3b2062575ba35514c0958b78
|
|
| BLAKE2b-256 |
a157fd52b0068697d5cd065ba192e221c6020196caa800c8ce0ebf6e7de9d07b
|