Как прочитать один объект из файла 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)