嵌套json对象的相似性

2024-09-30 00:31:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有大约1000个嵌套的json对象(参见示例)

在每个层面上都可能出现差异。我想计算两个物体的相似性。出现差异的级别越高,数据集的差异就越大。有些字段是相关的,如名称和id

有什么想法吗?有什么模块可以接管这项工作吗?非常感谢你的帮助

json示例:

{ "items";[
    {
    "id":"abcd",
    "Name":"Name",
    "Infos": {
        "info1":"info1",
        "info2":"info2"
    },
    "data":{
        "data1":"info1",
        "data2":"info2"
    },
    "packs": [
    {
    "Name":"Name",
    "description":"description"
    },
    {
    "Name1":"Name1",
    "description1":"description1"
    } } {
    "id":"abcd",
    "Name":"Name",
    "Infos": {
        "info1":"info1",
        "info4":"info4"
    },
    "data":{
        "data1":"info1",
        "data2":"info2"
    },
    "packs": [
    {
    "Name3":"Name3",
    "description":"description"
    },
    {
    "Name3":"Name3",
    "description1":"description1"
    } }

Tags: nameidjson示例datadescription差异abcd
1条回答
网友
1楼 · 发布于 2024-09-30 00:31:47
def difference(x,y):
  if isinstance(x, list) and isinstance(y, list):
    return 1+min( difference(a, b) for a, b in zip(x,y) )
  elif isinstance(x, dict) and isinstance(y, dict): 
    return 1+min( difference(a, b) for a, b in zip(x.values(), y.values() )
  else:
    return 1 if x!=y else 0

这就是你需要的吗

相关问题 更多 >

    热门问题