当前位置: 首页 > 知识库问答 >
问题:

Python计算两个json之间的差异百分比

曾苗宣
2023-03-14

我有一些本地json文件。例如:

JSON 1

{
"events":{
  "id1":{
     "name":"Marcus",
     "surname":"Redwhite",
     "age":"22",
     "text":{
        "description":"Some description ...",
        "title":"title of description"
     }
   },
  "id2":{
     "name":"Fred",
     "surname":"Rose",
     "age":"30",
     "text":{
        "description":"Some description ...",
        "title":"title of description"
     }
   }
}

JSON 1修改

{
"events":{
  "id1":{
     "name":"Marcus Modified",
     "surname":"Redwhite Modified",
     "age":"22",
     "text":{
        "description":"Some description ...",
        "title":"title of description Modified"
     }
   },
  "id2":{
     "name":"Fred",
     "surname":"Rose Modified",
     "age":"50",
     "text":{
        "description":"Some description ... Modified",
        "title":"title of description"
     }
   }
}

我必须比较这些Json文件(在这个示例中,姓名字段、姓氏字段、年龄字段和文本字段被修改),我必须计算它们之间的差异百分比(绘制饼图或任何其他图形)。有办法做到这一点吗?

import json
import glob

# get list of All json files in different folders:
originalJsonFilesList = glob.glob("C:/Python/OriginalJson/*.json")
modifiedJsonFilesList = glob.glob("C:/Python/ModifiedJson/*.json")

# Loop all list
for originalfile, modifiedFile in originalJsonFilesList, modifiedJsonFilesList:
    
    # Opening JSON files (original and modified)
    originalJson = open(originalfile)
    modifiedJson = open(modifiedFile)
   
    # load as dictionary
    data1 = json.load(originalJson)
    data2 = json.load(modifiedJson)
  
    #############################################
    # Something for calculateing difference 
    # of percentage between data1 and data2
    ############################################
  
    # Closing files
    originalJson.close()
    modifiedJson.close()

共有2个答案

杜凯
2023-03-14

第一:

将您的json转换为cript

dict_json1=json.loads(json_1)

dict _ JSON _ modified = JSON . loads(JSON _ modified)

第二:

将它们转换为设置:

dict_json1dict_json1.items

dict _ JSON _ modified = set(dict _ JSON _ modified . items())

diff = dict_json1 ^ dict_json_modified

打印(差异)

堵浩波
2023-03-14

你需要实现一个叫做Levenshtein距离度量的算法

还有一个问题与你的情况相似,有一个替代解决方案,你可以看看。

您也可以从difflib中检查SequenceMatcher

 类似资料:
  • 我正在尝试编写一个方法来打印两个ZonedDateTimes之间的时间差,关于时区之间的差异。 我找到了一些解决方案,但它们都是为使用LocalDateTime而编写的。

  • 问题内容: 在python中,如何引用上一行并针对它计算一些内容?具体来说,我有工作在-我有一个数据帧全的股票价格信息,看起来像这样: 这是我创建此数据框的方法: 从第2行开始,或者在这种情况下,我想是250(PS- 是索引吗?),我想为此数据帧中的每个条目计算2011-01-03和2011-01-04之间的差。我相信适当的方法是编写一个函数,该函数采用当前行,然后找出前一行,并计算它们之间的差,

  • 问题内容: 请包括nanos,否则将是无关紧要的: [编辑]我想要最精确的结果,所以不要双打;仅整数/长算术。同样,结果必须是肯定的。伪代码: 例子: 是的,在java.sql.Timestamp中毫秒被复制的时间和毫微秒不相上下,所以1001个毫秒装置1秒(1000)和1毫这是在部件和部分,因为1毫秒= 1000000毫微秒)。这比看起来要狡猾得多。 我建议不要在未实际测试代码或未准备好工作代码

  • 问题内容: 我在-type字段中将上次登录时间存储在MySQL中。当用户登录时,我想获取上次登录时间与当前时间(我使用)之间的时差。 我该如何计算? 问题答案: 使用MySQL函数。例如,您可以使用: 在您的情况下,函数的第三个参数将是当前登录时间()。第二个参数是上次登录时间,该时间已在数据库中。

  • 问题内容: 我在Scala中使用Java的类,想比较一个Date对象和当前时间。我知道我可以使用getTime()计算增量: 但是,这仅long代表我几毫秒。有没有更简单,更好的方法来获取时间增量? 问题答案: 不幸的是,JDK API严重损坏。我建议使用Joda时间库。 Joda Time具有时间间隔的概念: 编辑:顺便说一句,乔达有两个概念:用于表示两个时刻之间的时间间隔(表示上午8点至上午1

  • 问题内容: 我有两个字符串变量,例如StartTime和EndTime。我需要通过用StartTime减去EndTime来计算TotalTime。 StartTime和EndTime的格式如下: TotalTime(小时和分钟格式)。如何在Android中计算? 问题答案: 尝试下面的代码。 //假设时间格式为 (“ hh:mm a”) 格式 输出 -小时数:: 8