用于遍历和转换数据结构的实用程序
schlepp的Python项目详细描述
用于遍历和转换数据结构的实用程序
受hapi framework for.js(特别是hoek插件)的启发,我真的错过了python中的一些实用程序,所以决定将它们移植到python中。
到达(源,模式,[选项])
将对象键链字符串转换为引用
- options-可选设置
- separator-要拆分链路径的字符串,默认为“.”
- default-如果路径或值不存在,则返回的值,默认值为None
- strict-如果true将在缺少的成员上引发错误,则默认为False
包含负数的模式就像 阵列。
如果pattern是False-y,则返回对象本身。
fromschleppyimportreachpattern='a.b.c'source_obj={'a':{'b':{'c':1}}}reach(source_obj,pattern)# returns 1pattern='a.b.-1'source_obj={'a':{'b':[2,3,6]}}reach(source_obj,pattern)# returns 6
转换(源,转换,[选项])
根据所提供的^ {TT9}$和^ TT10}$MAP,将现有对象转换为新对象。options与reach选项相同。第一个参数也可以是对象数组。在这种情况下,该方法将返回一个转换对象数组。请注意,options.separator对于transform对象中的键和值都是受尊重的。
fromschleppyimporttransformsource={'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'# }