没有项目描述

pathdict的Python项目详细描述


Build Statuscodecov

具有访问和操作嵌套功能的扩展dict 使用路径符号的itens。

安装

pip install pathdict

示例

您可以使用点路径更改链式多访问运算符 符号:

frompathdictimportPathDictpath_dict=PathDict({'dogs':{'male':'Xablau','female':'Xena'},'enterprises':['B2W','Sieve'],'author':'@diogommartins'})# Same as path_dict['dogs']['female']print(path_dict['dogs.female'])>>>'Xena'

列表也可以通过路径符号访问:

frompathdictimportPathDictpath_dict=PathDict({'mammalia':{'ferae':{'carnivora':['carnidae','felidae','mustelidae','ursidae','viverridae']},'something':{'wiki':'pedia'}}})# Same as path_dict['mammalia']['ferae']['carnivora'][3]print(path_dict['mammalia.ferae.carnivora.3'])>>>'ursidae'

使用普通pythondict所做的一切都将工作。

定制

默认的separator.,但是可以使用 separator夸格。

frompathdictimportPathDictpath_dict=PathDict({'mammalia':{'ferae':{'carnivora':['carnidae','felidae','mustelidae','ursidae','viverridae']},'something':{'wiki':'pedia'}}},separator='/')print(path_dict['mammalia/ferae/carnivora/3'])>>>'ursidae'

可以让PathDict生成给定路径的步骤:

frompathdictimportPathDictpath_dict=PathDict(create_if_not_exists=True)path_dict['the.answer.to.all.problems']=42print(path_dict)>>>{'the':{'answer':{'to':{'all':{'problems':42}}}}}

也适用于嵌套列表字段:

frompathdictimportPathDictpath_dict=PathDict(create_if_not_exists=True)path_dict['some.letters']=['a','b']path_dict['some.letters.2']='c'print(path_dict)>>>{'some':{'letters':['a','b','c']}}

默认情况下,PathDict中的列表值类型转换为 pathdict.collection.StringIndexableList。你可以改变它 使用list_class关键字参数的行为。当心如果 list_class类没有实现StringIndexableList协议, pathdict的列表路径将失败。

frompathdictimportPathDictpath_dict=PathDict()path_dict["list"]=[1,2,3]type(path_dict["list"])>>>pathdict.collection.StringIndexableListpath_dict["list.1"]>>>2custom_path_dict=PathDict(list_class=list)type(custom_path_dict["list"])>>>listcustom_path_dict["list.1"]>>>TypeError:listindicesmustbeintegersorslices,notstr

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

推荐PyPI第三方库


热门话题
谷歌应用引擎错误:找不到匹配的索引。(爪哇)   javajavaee使用的堆内存一直在增加,直到一切都中断   java从会话变量在Jquery中创建动态html   java我需要通过按下unity应用程序中的on按钮来加载安卓摄像头应用程序   java获取辅助监视器的大小   在webdriver中找不到java元素   爪哇人在石头周围画出轮廓,用x方块来区分它们   java如何在Android中解析json对象?   java Spring RestController生成字符集=UTF8   java在Nashorn中使用WebSocket   实例化数组时出现java Nullpointer异常   java ArrayList不会添加多个项   更新到安卓x后的java:'膨胀安卓类时出错。支持设计小装置。导航视图。”为什么应用程序会崩溃?   mysql获取JavaSQL时间并将其插入到表中   java在哪里调用创建通知方法?   如何导入eclipse。用NeatbeansIDE开发的JavaSwing项目中的组织库   从java resultset重写excel(.xlsm)文件时,sql server性能在45k记录后下降