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

schlepp的Python项目详细描述


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

受hapi framework for.js(特别是hoek插件)的启发,我真的错过了python中的一些实用程序,所以决定将它们移植到python中。

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

Insipred by Hoek.reach

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

  • 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

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

Insipred by Hoek.transform

根据所提供的^ {TT9}$和^ TT10}$MAP,将现有对象转换为新对象。optionsreach选项相同。第一个参数也可以是对象数组。在这种情况下,该方法将返回一个转换对象数组。请注意,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'# }

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用java从mysql备份特定的表   方法引用中的java错误返回类型:无法转换反应器。果心出版商单核反应堆。果心出版商单声道?扩展R>   java为什么我的e4应用程序插件不能被调用   swing为什么在java中JComboBox的ListCellRenderer上出现类强制转换异常?   java无直接方法<init>(Ljava/lang/reflect/method;IL2/Converter;)V类Lretrofit2/ParameterHandler$Body   java监控BufferedInputStream下载进度   java Springboot外部文件数据库配置   java Selenium WebDriver StaleElementReferenceException在使用click()时出现异常   在java中对传递给静态函数的参数的更改   为什么x==(x=y)和(x=y)=x不一样?   java我应该为我的应用程序创建一个片段吗?   java HashMap何时以及如何将bucket从链表转换为红黑树?   java文件读/写的正确顺序   在java中在哪里使用对象类?   javacom。数据税。驾驶员果心例外情况。InvalidQueryException:未配置的表架构\u键空间   Java如何在Arangodb上创建边?