Как найти определенное значение JSON по ключу с помощью List Computing и Pydash

Я пытаюсь найти конкретное значение JSON по ключу, используя List Computing и Pydash. Я знаю, что есть несколько способов сделать это, но я более конкретен, чтобы сделать это с помощью List Comprehension а также Pydash. Я пробовал ниже фрагмент кода, который вроде работает для dict итерация, но не для list итерация.

      import pydash as py_
data = {
  "P1": "ss",
  "P2": {
      "P1": "cccc"
  },
  "P3": [
      {
          "P1": "aaa"
      }
  ]
}

def findall(v, k):
    if type(v) is list:
        [findall(i,k) for i in v]
    a= [py_.get(v,k)]+[findall(py_.get(v, k1), k) for k1 in v if type(v) == type({})]
    return(a)

refs_= findall(data, 'P1')
refs_d = py_.compact(py_.chain(refs_).
         flatten_deep().
         value())
print(refs_d)

Я пытаюсь найти ценности для всех P1. Выход должен быть ["ss","cccc","aaa"]

0 ответов

Другие вопросы по тегам