没有项目描述

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第三方库


热门话题
java以编程方式最小化JInternalFrame?   java使用JsonPath将不均匀列表提取为类型化对象   spring如何将java/resources文件获取到InputStream?   Java逻辑错误并不总是存在   java Firebase,更新特定字段   Java stream groupby并同时加入以进行csv导出   java安卓:如果出现任何声音,监听器将录制声音   java如何从多个文件中轮询最后修改的文件并发送到apache camel中的目标端点?   java是否返回多个比较器?   JavaBean IO:Date MMM在CAPS中不解析   当JButton从另一个类单击时,java正在更新JLabel   基类中子类的Java泛型初始化   jakarta ee Java ee制作一个以毫秒为间隔的计时器来发送数据包   json Windows Azure日期格式转换为Java日期