从json代码到python代码索引正确或错误的语句

时间:2019-02-06 03:29:08

标签: python json indexing

我有一个需要声明的json语句。我只想索引两个部分:“感染”和“结果”我想索引True或False语句以及结果,即文件名。我希望文件成为python索引

json文件

{
  "tendersearch": {
"infected": true,
"result": "EICAR-AV-Test",
"engine": "5.27.0",
"database": "5.31",
"updated": "20160920"
 }
}

当前代码

import json
from pprint import pprint

with open('data.json') as data_file:    
    data = json.load(data_file)
 pprint(data)

我只想要结果名称为真和假的列表。

1 个答案:

答案 0 :(得分:0)

假设您的数据采用以下格式:

{
    "keyword1":{
        "infected": False
        "result": "Name"
        "otherParams": "otherVals"
    }

    "keyword2": {
    ...
    }
}

在python中从json导入数据时,该数据将转换为字典。这意味着您可以像字典一样遍历它,以提取您真正想要的信息。

例如,如果您要为result中的每个条目创建一个将infected参数映射到json参数的新字典,则可以通过遍历字典。就这么简单:

import json

with open('data.json') as data_file:    
    data = json.load(data_file)

goal = {}
for key in data.keys():
    result = data[key]["result"]
    infected = data[key]["infected"]
    if result not in goal:
        goal[result] = infected
    else:
        print("Repeated result key of '" + result + "'")

print(goal)

对于您提供的示例文件,将输出:

{'EICAR-AV-Test': True}

我相信这是您想要的。

此方法仅遍历json文件中的每个条目,并在输出字典中创建一个新的key => value对,将该条目的result参数映射到其infected参数,并迅速提醒您任何错误。

我相信这是您的目标,但是如果这不能完全回答您的问题,请告诉我。