Dictionaries¶
merge_dict(original, updates, merge_functions=None, post_processor=None, key_order=None)
¶
Merge two dictionaries.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
original
|
dict
|
Original dictionary |
required |
updates
|
dict
|
Dictionary with updates |
required |
merge_functions
|
dict[str, Callable[[Any, Any], Any]] | None
|
Dictionary of functions to use for merging specific keys |
None
|
post_processor
|
callable | None
|
Function to process the result after merging |
None
|
key_order
|
list[str] | None
|
Non-exhaustive list of keys to sort by |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
dict |
dict
|
Merged dictionary |
Example
original = {
"name": "Alice",
"age": 30,
"tags": ["user"],
}
updates = {
"age": 31,
"tags": ["editor"],
}
merged = merge_dict(
original,
updates,
merge_functions={
"age": lambda o, u: min(o, u),
},
post_processor=lambda d: d.update({"name": d["name"].upper()})
)
assert merged == {
"name": "ALICE",
"age": 30,
"tags": ["user", "editor"],
}