Допустим, у меня есть AllData, список вложенных dicts (давайте представим, что есть тысячи записей), но я ищу только одну запись.
AllData = [
{ "EntryA" : {"A Key":"A Value"} },
{ "EntryB" : {"B Key":"B Value"} },
{ "EntryC" : {"C Key":"C Value"} }
]
В настоящее время я просто зацикливаю через него и ломаюсь, как только найду соответствующий ключ.
MyKey = "EntryB"
FoundData = {}
for item in AllData:
for key,data in item.items():
if MyKey.lower() == key.lower():
FoundData = data
break
print(FoundData)
Однако, будучи энтузиастом Python, я знаю, что есть более элегантный способ сделать это. Я немного боролся с правильными методами понимания списка, но я пытаюсь! Ниже представлено лучшее, что я смог придумать, собирая эти данные в одну строку, но мне интересно, есть ли еще более элегантное решение этой проблемы.
MyKey = "EntryB"
FoundData = [x for x in AllData if str(list(x.items())[0][0]).lower() == MyKey.lower()][0][MyKey]
print(FoundData)
Любое понимание буду очень признателен :)