一个最简单的python库,用于轻松、高效地操作嵌套数据结构。

carve的Python项目详细描述


雕刻

一个最简单的python库,用于轻松、高效地操作嵌套数据结构。

看一看:

>>> from carve import treemap
>>> obj = {"john": {"doe": [{"puma": "yes", "adidas": None}]}}
>>> treemap(obj, remove_empty)
{"john": {"doe": [{"puma": "yes"}]}}
>>> treemap(obj, lambda k,v,p: ("PUMA", "puma") if k == "puma" else (k,v))
{"john": {"doe": [{"PUMA": "puma", "adidas": None}]}}

快速启动

使用pip/pipenv/etc进行安装(我们建议poetry用于SANE依赖关系管理):

$ poetry add carve

使用每个操作的k,v,p上下文转换词典:

  • K键。
  • V值。
  • p-path,以元组的形式:(“john”,“doe”)表示嵌套键“john.doe”。

并返回一个键值元组:(key, value)。您可以:

  • 返回自定义值以同时更改键和值("foo", "bar")
  • 只需修改一个键:("foo", v)
  • 只需修改一个值:(k, "bar")
  • 删除当前条目:(None, None)
  • 根据当前路径决定要做什么:(None, None) if "secret" in p else (k,v)

内置

您可以使用以下内置选项进行快捷操作:

fromcarveimporttreemap,mapkey,mapval,remove,on_key,remove_empty,flowtreemap(target,remove(lambdak,v,p:k=="adidas"))treemap(target,mapval(lambdak,v,p:"X"iflen(p)>2elsev))treemap(target,mapkey(lambdak,v,p:"X"+viflen(p)>2elsek))treemap(target,on_key("puma",lambdak,v,p:(k,"X")))treemap(target,remove_empty)# multiple builtins, left-to-right with 'flow'asserttreemap(target,flow(scream,remove_empty))

谢谢:

向所有人致意-你做到了,谢谢!

版权所有

版权所有(c)2018@jondot。有关详细信息,请参见LICENSE

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

推荐PyPI第三方库


热门话题
java在Hibernate中从两个具有不同功能的表(postgreSQL)映射一个实体   java jfreechart需要自定义Y轴,以便打印   Java:从外部获取类。罐子   java如何获取Appium服务器日志   具有完全相同内容的java重写函数会导致错误   java消息的类路径是什么。属性(如果在依赖项jar中)   循环/相等的java问题==   java如何使用ionic cordova angularjs将所选图像发送到spring controller以保存到服务器?   库中的java语言环境数据   java从JSON webservice检索安卓中的字节[]   调试如何从Java中的类调试方法?   java将日期字符串切割成变量   无法使用java附加到文件?