我有一个需要声明的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)
我只想要结果名称为真和假的列表。
答案 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
参数,并迅速提醒您任何错误。
我相信这是您的目标,但是如果这不能完全回答您的问题,请告诉我。