计算对象之间的深度差异

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以编程方式从TableLayout中删除所有行   Java Web Sart Ubuntu12.1。加载资源(图像)   人们如何让Java SPNEGO客户端在Windows中工作?   java Eclipselink:ObjectArrayMapping和ClassDescriptor   控制台中带有引号/空格的java Javafx命名参数   java创建服务失败:找不到对象?   java Hazelcast:如何在测试期间禁用自动发现?   使用TuckyUrlRewriteFilter rermoteaddr的java块IP   javascript如何在angular 4中进行同步http调用   输入字符串的java排列   java Jenkins不是以Xrs Xmx2048m XX:MaxPermSize=512m(windows)开始的   AWS EMR上的java avro错误   java从两个ArrayList中提取特定连接的对象,组合这些相关对象并从子类中打印   java从主题中删除什么时间点消息?   谷歌像素设备上的java InvalidKeyException   java如何在执行测试后重建项目   java Android 2.2 readUTF()socket问题   按下安卓设备上的“后退”按钮后java Toast没有完成?