Python найти значения в JSON, связанные со значением - PullRequest
0 голосов
/ 03 октября 2019

Привет, у меня есть скрипт на python, который открывает файл json, ищет значение и возвращает другие параметры, связанные с ним. В настоящее время я не могу найти значение внутри него.

Ниже моей структуры json:

{
    "MALE": [{
        "name": "John",
        "age": "70",
        "country": "Germany"
    },
    {
        "name": "Luke",
        "age": "35",
        "country": "France"
    }],
    "FEMALE": [{
        "name": "Sarah",
        "age": "29",
        "country": "Spain"
    }]
}

Что у меня есть на стороне Python:

import json

with open('/path/to/json/file') as f_json:
     data = json.load(f_json)

То, что я хочу сделать: получить значения "age" и "country" при разборе имени "John"

Как я могу это сделать?

Спасибо

Ответы [ 2 ]

1 голос
/ 03 октября 2019

Вы можете попробовать следующий код, возможно, потребуется несколько итераций, чтобы соответствовать вашему конкретному случаю использования

import json

with open('/path/to/json/file') as f_json:
    data = json.load(f_json)
    male, female = data.get("MALE"), data.get("FEMALE")
    for person in male:
        if person.get("name") == "John":
            print(person.get("age"), person.get("country")
0 голосов
/ 03 октября 2019

Вы можете изменить рефакторинг результата с новым dict, если будете использовать эту логику чаще:

import json

result = {}

with open('/path/to/json/file') as f_json:
    data = json.load(f_json)
    for key in data:
        for ele in data[key]:
            result[ele['name']] = ele

Затем вы можете использовать результат для доступа к относительному свойству некоторого имени:

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