Skip to main content

用于遍历和转换数据结构的实用程序

项目描述

用于遍历和转换数据结构的实用程序

受 .js 的 Hapi 框架(尤其是 Hoek 插件)的启发,我真的很怀念 python 中的一些实用程序,因此决定将它们移植过来。

到达(来源,模式,[选项])

灵感来自 Hoek.reach

将对象键链字符串转换为引用

  • 选项- 可选设置

    • 分隔符- 用于分割链路径的字符串,默认为 '.'

    • default - 如果路径或值不存在,则返回值,默认值为None

    • strict - 如果为true,将在缺少成员时抛出错误,默认为False

包含负数的模式将像数组上的负索引一样工作。

如果 pattern 为False-y,则返回对象本身。

from schleppy import reach

pattern = 'a.b.c'
source_obj = {'a' : {'b' : { 'c' : 1}}}

reach(source_obj, pattern) # returns 1

pattern = 'a.b.-1'
source_obj = {'a' : {'b' : [2,3,6]}}

reach(source_obj, pattern) # returns 6

变换(源,变换,[选项])

灵感来自 Hoek.transform

根据提供的obj变换映射将现有对象转换为新对象。选项与到达选项相同。第一个参数也可以是对象数组。在这种情况下,该方法将返回一个转换后的对象数组。请注意,对于转换对象中的键以及值,都将遵循 options.separator 。

from schleppy import transform

source = {
    'address': {
        'one': '123 main street',
        'two': 'PO Box 1234'
    },
    'title': 'Warehouse',
    'state': 'CA'
}

result = transform(source, {
    'person.address.lineOne': 'address.one',
    'person.address.lineTwo': 'address.two',
    'title': 'title',
    'person.address.region': 'state'
})
# Results in
# {
#     'person': {
#         'address': {
#             'lineOne': '123 main street',
#             'lineTwo': 'PO Box 1234',
#             'region': 'CA'
#         }
#     },
#     'title': 'Warehouse'
# }

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

schleppy-1.1.22.tar.gz (3.7 kB 查看哈希

已上传 source

内置分布

schleppy-1.1.22-py3-none-any.whl (5.3 kB 查看哈希

已上传 py3