计算对象之间的深度差异

pydeepdiff的Python项目详细描述


pydeepdiff
==


'rhs''rhs'''rhs':值}
''lhs'''lhs'''lhs''''lhs'''lhs''lhs'''lhs':值}
-Edition:{''path''path''path''u to_对象,'kin''''''''''''lhs':值,'rhs''s''rhs'''rhs''rhs''rhs''rhs''rhs''rhs''rhs''rhs''s':值}<<<<<<
's''s''s''s':值}<<<<<<<<<<<<<<
's's'kind':'D','lhs_idx':索引,'lhs':值}
-移动{'path':{'path':path~u-object,'kind':'m,'lhs'u idx':index,'rhs'u idx':index}



>这个lib需要python 3.2+





```````
>pip install pydeepdeepdiff
``````
>


``python

>

>




dict_a={'field_1':'id1',“字段2”:“vala1”}
dict_b={field_1':“id3”,“field_2':“valb1”}

differences=get_diff(dict_a,dict_b)


'kind':'e',
'lhs':'id1',
'rhs':'id3'
},
{
'path':[
'field\u 2'
],
'kind':'e',
'lhs':'vala1',
'rhs':'valb1'
>






dict'a={'id''1''dict''id''1''''bloc':{'act':'1'}
dict'b={'id':'1'''dict''''''bloc':{'act':'2'}


differ=get'u diff(dict'a,dict'a'dict'1''':'2'}



differs=get'get'u diff(diff(dict'a,dict'a,dict'a,/>{
'路径':[
'整体',
'动作'
],
'种类':'e',
'左侧':'1',
'rhs':'2'
}
]
````

忽略的字段

比较对象时可以忽略某些字段。
将这些字段的列表传递给比较函数。



>例如:不要比较嵌套“bloc”对象的字段“act”字段“act”字段:






dict a={'id''1''dict''id''1''bloc':{'act':'1'}
dict b={'id''1'''dict':{'bloc':{'act':'1'}


diff=get-diff(dict a,dict b,dict'b,dict'b,'dict'a,dict'act'act'act'act'1':'1'}
<根',{},['root.bloc.act'])
```


在本例中,结果是一个空白的差异列表。

它表示它的ID,我们希望使用它。
在PydepDiff中,这种情况通过映射文件解决。

=[{'field'u 1':'id3''id3'''id3'''field'2':'valb1'},{'field'u 1':'id1'''''field'2':'valb2'}]



mapping=[{'path':'''id':'field'u 1'}]




``````



映射由一个列表表示,字段‘id''field'field 1'}]






对象的。每个对象都有一个:
*一个“path”字段,其中包含对象的json路径
*一个“id”字段,其中包含表示对象id的字段的名称(由“path”指向)

他空字符串


>结果是以下差异列表:


`````
[
>
{{'path'u-to'u-object':'''path'u-to'u-object':'''filter':''rhs'u-idx''1,'lhs'u-idx''0,'kind':'M'},
{{'rhs':'valb2,'lhs'vala1,'lhs'u-idx'idx'0,'kind':'M'},'br/>{'rhs':'valb2,'valb2,'lhs''lhs':'vala1,'vala1 uidx:1,“种类”:“D”,“lhs”:{字段2':'vala2','字段1':'id2'},'到对象的路径':'','筛选器':'},
{rhs'uidx':0,'种类':'n,'rhs':{字段2':'valb1,'字段1':'id3'},'到对象的路径':','筛选器':'}
]
`````

只需从项目主目录运行此命令(您将需要安装py.test)

````
py.test test

```

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

推荐PyPI第三方库


热门话题
Java Webstart“javaws open”标志不适用于多个参数   java ArrayList声明和处理   获取数组中值的百分比(Java)   java将ArrayList转换为字符串以存储在共享首选项中   Java8Lambdas与泛型的结合使用   Scala数组到Java   如何使用java知道webcontainer的路径?   java使用“收集”和“合并”的组背后的算法是什么   java OSGi:在两个不同的包中具有相同的包路径   java混淆了swt画布。重画   java正则表达式,用于5位数逗号分隔的值,例如047000480004900   使用HttpClient显示非ASCI字符的java   水塔计算程序Java中球体体积的计算   java根据给定值调整框架中所有组件的大小   java Builder类中的其他方法(lombok注释)