一个轻量级的库,用于执行Python字典的深度合并
项目描述
DeepMerge
一个轻量级的Python包,用于执行Python字典的深度合并
安装
使用pip安装此包!
$ pip install pydeepmerge
要从源安装此包,请克隆仓库并运行
$ pip install .
如果您想进行开发,请记住安装附加组件。
# for bash
$ pip install -e .[test,dev]
# for zsh
$ pip install -e .\[test,dev\]
用法
用法很简单
from pydeepmerge import deep_merge
> some_data = {'foo': {'bar': 'baz', 'spam': 'eggs'}, 'ham': 'eggs'}
> more_data = {'spam': {'eggs': 'ham'}, 'foo': {'baz': 'bar', 'bar': 'foo'}}
> deep_merge(some_data, more_data)
{'foo': {'bar': 'foo', 'baz': 'bar', 'spam': 'eggs'}, 'spam': {'eggs': 'ham'}, 'ham': 'eggs'}
pydeepmerge
还允许用户指定自己的合并策略函数。默认情况下,它使用 prefer_right
函数。
合并策略是任何可以接受两个输入的函数。合并策略函数的输出应该是两个值之间的合并结果。
在编写自己的合并策略函数时,请记住,如果键在左侧映射中不存在,则将值 Key.NoKeyFound
传递给函数的第一个参数。这样做是为了让用户确定是否想在字典序列中键首次出现时执行特殊行为。
以下是一个合并策略函数的示例
from pydeepmerge import deep_merge
from pydeepmerge.types import Key
from typing import Mapping
def pick_shallower(left_value, right_value):
if left_value is Key.NoKeyFound:
return right_value
if isinstance(right_value, Mapping):
if not isinstance(left_value, Mapping):
return left_value
return deep_merge(left_value, right_value)
return right_value
deep_merge
函数不会修改任何映射,而是创建一个新的字典。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码发行版
pydeepmerge-0.3.3.tar.gz (6.5 kB 查看哈希值)
构建发行版
pydeepmerge-0.3.3-py3-none-any.whl (10.3 kB 查看哈希值)
关闭
pydeepmerge-0.3.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f8db9935b666b92baebdae53eaffb0be3c775f68df21c2cb86bbbafb3cbbb970 |
|
MD5 | 349d2247b41ebafe566478db5810ba6f |
|
BLAKE2b-256 | 895b55b6eab1f2f14b07f62dd1f2e1f14eaa5d515afadf51c7f0468c90b00a4f |
关闭
pydeepmerge-0.3.3-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e570fe4422a4448d21919c086f27d249dc8330684737160c02f5f35ba862ed90 |
|
MD5 | 8a8a7f55b1bf9fb867a4ba5f8cc40c5b |
|
BLAKE2b-256 | 15fdc3c86a5d14cfd17b47e0ba24afb398c61f4519672d22a435ba586fd974a3 |