индексировать истинные или ложные утверждения из кода JSON в код Python - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть утверждение 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 голосов
/ 06 февраля 2019

Предполагая, что ваши данные имеют вид:

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

    "keyword2": {
    ...
    }
}

Когда вы импортируете данные из json в python, они преобразуются в словарь.Это означает, что вы можете перемещаться по нему, как по словарю, для извлечения фактически необходимой информации.

Например, если вы хотите создать новый словарь, сопоставляющий параметр 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, а также быстро предупреждает вас о любых ошибках.

Я считаю, что это было вашей целью, но дайте мне знать, если это не полностью отвечает на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...