Как проверить элемент в разнородном списке (список словарей, внутренние списки) - PullRequest
0 голосов
/ 17 апреля 2020

В ответ на API я получаю этот вывод. Вместо l oop с поиском по kv есть ли способ сделать list.find ("Image"), если он есть, мне просто нужен логический вывод. Он может присутствовать в любом месте списка, но если он существует, мне просто нужно true / false.

    [{'relTo': {'id': '56qswWscQJK6-cnIoQSwmA', 'type': 'Image'}, 'attributes': {'imagerelstatus': {'values': [{'source': 'internal', 'locale': 'en-US', 'id': '6069da0c-ac0a-4912-af7a-2b06547a2c14', 'os': 'businessRule', 'osid': 'imagestatusvendorItementitytype_businessRule', 'ostype': 'businessRule', 'value': 'invalid'}]}}, 'id': '56qswWscQJK6-cnIoQSwmA'}, {'relTo': {'id': '3EZdi8lHRXWWko4SXSV0PA', 'type': 'Image'}, 'attributes': {'imagerelstatus': {'values': [{'source': 'internal', 'locale': 'en-US', 'id': 'ea25efd5-5825-480c-81de-b1e6e32dbdcb', 'os': 'businessRule', 'osid': 'imagestatusvendorItementitytype_businessRule', 'ostype': 'businessRule', 'value': 'invalid'}]}}, 'id': '3EZdi8lHRXWWko4SXSV0PA'}, {'relTo': {'id': 'Vm9wXWddTfCHhcWYg51Zdg', 'type': 'Image'}, 'attributes': {'imagerelstatus': {'values': [{'source': 'internal', 'locale': 'en-US', 'id': 'bbe78f14-e2a5-44e3-ae4f-dcdd4cc92d86', 'os': 'businessRule', 'osid': 'imagestatusvendorItementitytype_businessRule', 'ostype': 'businessRule', 'value': 'invalid'}]}}, 'id': 'Vm9wXWddTfCHhcWYg51Zdg'}, {'relTo': {'id': 'Gpr4J4XTSwmkPm7_cjwrTA', 'type': 'Image'}, 'attributes': {'imagerelstatus': {'values': [{'source': 'internal', 'locale': 'en-US', 'id': '7c272829-9e75-4a85-979d-20b8be0dbc2f', 'os': 'businessRule', 'osid': 'imagestatusvendorItementitytype_businessRule', 'ostype': 'businessRule', 'value': 'invalid'}]}}, 'id': 'Gpr4J4XTSwmkPm7_cjwrTA'}, {'relTo': {'id': 'P8-_RSF2QZOa_8Vfgzy-yQ', 'type': 'Image'}, 'attributes': {'imagerelstatus': {'values': [{'source': 'internal', 'locale': 'en-US', 'id': '6104653e-0f42-44b8-baca-a8d2334ba87b', 'os': 'businessRule', 'osid': 'imagestatusvendorItementitytype_businessRule', 'ostype': 'businessRule', 'value': 'invalid'}]}}, 'id': 'P8-_RSF2QZOa_8Vfgzy-yQ'}]

1 Ответ

4 голосов
/ 17 апреля 2020

Пусть:

x = [{'relTo': {'id': '56qswWscQJK6-cnIoQSwmA', 'type': 'Image'}, 'attributes': {'imagerelstatus': {'values': [{'source': 'internal', 'locale': 'en-US', 'id': '6069da0c-ac0a-4912-af7a-2b06547a2c14', 'os': 'businessRule', 'osid': 'imagestatusvendorItementitytype_businessRule', 'ostype': 'businessRule', 'value': 'invalid'}]}}, 'id': '56qswWscQJK6-cnIoQSwmA'}, {'relTo': {'id': '3EZdi8lHRXWWko4SXSV0PA', 'type': 'Image'}, 'attributes': {'imagerelstatus': {'values': [{'source': 'internal', 'locale': 'en-US', 'id': 'ea25efd5-5825-480c-81de-b1e6e32dbdcb', 'os': 'businessRule', 'osid': 'imagestatusvendorItementitytype_businessRule', 'ostype': 'businessRule', 'value': 'invalid'}]}}, 'id': '3EZdi8lHRXWWko4SXSV0PA'}, {'relTo': {'id': 'Vm9wXWddTfCHhcWYg51Zdg', 'type': 'Image'}, 'attributes': {'imagerelstatus': {'values': [{'source': 'internal', 'locale': 'en-US', 'id': 'bbe78f14-e2a5-44e3-ae4f-dcdd4cc92d86', 'os': 'businessRule', 'osid': 'imagestatusvendorItementitytype_businessRule', 'ostype': 'businessRule', 'value': 'invalid'}]}}, 'id': 'Vm9wXWddTfCHhcWYg51Zdg'}, {'relTo': {'id': 'Gpr4J4XTSwmkPm7_cjwrTA', 'type': 'Image'}, 'attributes': {'imagerelstatus': {'values': [{'source': 'internal', 'locale': 'en-US', 'id': '7c272829-9e75-4a85-979d-20b8be0dbc2f', 'os': 'businessRule', 'osid': 'imagestatusvendorItementitytype_businessRule', 'ostype': 'businessRule', 'value': 'invalid'}]}}, 'id': 'Gpr4J4XTSwmkPm7_cjwrTA'}, {'relTo': {'id': 'P8-_RSF2QZOa_8Vfgzy-yQ', 'type': 'Image'}, 'attributes': {'imagerelstatus': {'values': [{'source': 'internal', 'locale': 'en-US', 'id': '6104653e-0f42-44b8-baca-a8d2334ba87b', 'os': 'businessRule', 'osid': 'imagestatusvendorItementitytype_businessRule', 'ostype': 'businessRule', 'value': 'invalid'}]}}, 'id': 'P8-_RSF2QZOa_8Vfgzy-yQ'}]

Поскольку вам просто нужен bool:

any(i in str(x) for i in ['Image','image'])

или просто:

"Image" in str(x)

или даже лучше:

"'type': 'Image'" in str(x)

или я должен сказать:

any(i in str(x) for i in ['"Image"',"'Image'"])

возвращаемое значение Image присутствует в списке.

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