“将dict从一个api转换为另一个api的dict”python模块。
transmogrifydict的Python项目详细描述
跨语言信息技术
“将dict从一个api映射到另一个api的dict”python模块。
方法
resolve_mapping_to_dict(mapping, source)
-将值从source
移动到返回的dict中,对路径和返回的键使用mapping
。fromtransmogrifydictimportresolve_mapping_to_dictmapping={'a':'d','b':'e','c':'f'}source={'d':1,'e':2,'f':3}resolve_mapping_to_dict(mapping,source)# {# 'a': 1,# 'b': 2,# 'c': 3,# }
resolve_path_to_value(source, path)
-使用path
作为指向所需值的指针,从source
中获取值。有关路径字符串格式,请参见docstring。fromtransmogrifydictimportresolve_path_to_valuesource={'d':1,'e':2,'f':3}found,value=resolve_path_to_value(source,'e')print((found,value))# (True, 2)
path
或mapping
值格式
fromtransmogrifydictimportresolve_path_to_valuesource={'some-key':{'another-key':'123'}}# dot notation can be used to descend into dictionaries.resolve_path_to_value(source,'some-key.another-key')# (True, '123')source={'some-key':'{"another-key":"123"}'}# dot notation can also be used to descend into json strings that are dictionary likeresolve_path_to_value(source,'some-key.another-key')# (True, '123')source={'some-key':{'another-key':['1','2','3']}}# square brackets can be used to get specific indexes from a listresolve_path_to_value(source,'some-key.another-key[1]')# (True, '2')source={'some-key':{'another-key':[{'filter-key':'yeah','each-key':'a',},{'filter-key':'yeah','each-key':'b',},{'filter-key':'nah','each-key':'c',}]}}# dot notation can be used after square brackets if the list contains dict-like valuesresolve_path_to_value(source,'some-key.another-key[1].each-key')# (True, ['b']) # square brackets can be used to iterate over arrays to descend into the itemsresolve_path_to_value(source,'some-key.another-key[].each-key')# (True, ['a', 'b', 'c'])# when iterating over a list, a filter can be applied using [key=value]resolve_path_to_value(source,'some-key.another-key[filter-key=yeah].each-key')# (True, ['a', 'b'])source={'a-key':[{'b-key':{'c-key':1,'d-key':2,}},{'b-key':{'c-key':1,'d-key':3,}},{'b-key':{'c-key':0,'d-key':4,}}]}# tidle notation can be used to filter on sub keys of dict list items.resolve_path_to_value(source,'a-key[b-key~c-key=1].b-key.d-key')# (True, [2, 3, 4])#