Как прочитать один объект из файла json, содержащего несколько объектов, с помощью Python?

У меня есть файл JSON, содержащий несколько объектов

{
  "Elements": [
    {
      "name": "Hydrogen",
      "symbol": "H"
    },
        {
      "name": "Lithium",
      "symbol": "Li"
    },
        {
      "name": "Sodium",
      "symbol": "Na"
    }
  ]
}

Я хочу иметь возможность искать их по имени, но только по одному. До сих пор я мог прочитать все элементы вместе с выводом вроде

Hydrogen
Lithium
Sodium

но я хочу читать только один из объектов, а не все из них. Мой код Python для этого пока

import json

f = open('elements.json')
data = json.load(f)

for element in data['Elements']:
    print(element['name'])

2 ответа

Решение

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

import json

with open('elements.json') as f:
   data = json.load(f)
choice = input("Choose element: ")

for element in data['Elements']:
   if element['name'] == choice:
       for x, y in element.items():
         print(x.title() + "-> " + y)
   

Насколько я понял, вы запросили решение для получения первого элемента с указанным именем элемента. Вот:

def match(data, name):
        for element in data['Elements']:
            if element['name'] == name:
                return element

Другой вариант: найти первый элемент последовательности, соответствующий критерию

 def match(data, name):
        return next(element for element in data['Elements'] if element['name'] == name)
Другие вопросы по тегам