Lists¶
merge_list_of_dicts_by_key(values, updates, key, default_key=None, merge_functions=None, object_key_order=None)
¶
Merge two lists of dictionaries by a specified key.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
values
|
list[dict]
|
List of original dictionaries |
required |
updates
|
list[dict]
|
List of dictionaries with updates |
required |
key
|
str
|
Key to use for merging |
required |
default_key
|
str | None
|
Key to use for default updates |
None
|
merge_functions
|
dict[str, Callable[[Any, Any], Any]] | None
|
Dictionary of functions to use for merging specific keys |
None
|
object_key_order
|
list[str] | None
|
Non-exhaustive list of keys to sort objects by |
None
|
Returns:
| Type | Description |
|---|---|
list[dict]
|
list[dict]: Merged list of dictionaries |
Example
values = [
{"id": 1, "name": "Alice", "tags": ["user"]},
{"id": 2, "name": "Bob", "tags": ["admin"]},
]
updates = [
{"id": 1, "tags": ["editor"]},
{"id": 3, "name": "Charlie", "tags": ["user"]},
]
merged = merge_list_of_dicts_by_key(values, updates, key="id")
assert merged == [
{"id": 1, "name": "Alice", "tags": ["user", "editor"]},
{"id": 2, "name": "Bob", "tags": ["admin"]},
{"id": 3, "name": "Charlie", "tags": ["user"]},
]