首页 > 解决方案 > Python - 在多个 JSON 文件中搜索已知字符串列表并创建具有百分比匹配的组匹配报告

问题描述

我正在尝试查找单个目录中的哪些 JSON 文件具有相同或相似的数据,然后在每个 JSON 文件中的已知字符串之后按百分比报告哪些文件与每个仅匹配字符串最接近。任何人都可以帮助创建 Python 脚本以将结果输出到报告文件吗?

首先,我正在查看此内容,但我希望它可以遍历文件而不必指定字符串并输出具有相似性(%)的报告,请参见示例;

import os

search_path = ("/home/...")
file_type = (".json")
search_str = ("'Apple-active':True", "'Apple-active':False")

if not (search_path.endswith("/") or search_path.endswith("\\") ): 
    search_path = search_path + "/"
                                     
if not os.path.exists(search_path):
    search_path ="."

for fname in os.listdir(path=search_path):

if fname.endswith(file_type):
    for ss in search_str:
        fo = open(search_path + fname)
        line = fo.readline()
        line_no = 1
        while line != '' :
            index = line.find(ss)
            if ( index != -1) :
                print(fname, "[", line_no, ",", index, "] ", line, sep="")
            line = fo.readline()  
            line_no += 1
    fo.close()'

JSON 文件数据示例;

"'Apple-value':1", "'Apple-active':True", "'Banana-value':1", "'Banana-active':True"

电流输出到端子;

store1.json 'Apple-active':真

store4.json 'Apple-active':真

shop25.json 'Apple-active':真

cafe2.json 'Apple-active':真

store5.json 'Apple-active':假

shop6.json 'Apple-active':假,

理想报告示例;

100% 匹配

字符串匹配;

"'Apple-value':5", "'Apple-active':True", "'Banana-value':10", "'Banana-active':False" ...

字符串不匹配;没有任何

具有上述字符串的文件 100% 匹配;

store1.json store4.json shop25.json cafe2.json

93% 匹配

字符串匹配;

"'Apple-value':3", "'Apple-active':False", "'Banana-active':False",

字符串不匹配;

"'Banana-value':" 差异范围 30 - 200

...

具有以上字符串的文件匹配 93%;

store5.json shop6.json

谢谢

标签: pythonjsonsearch

解决方案


推荐阅读