Как получить доступ к значению поля из вывода покоя, используя python2? - PullRequest
0 голосов
/ 06 марта 2019

Вот моя структура:

[
            {
                "name": "ga0",
                "fullName": "gac0",
                "key": "office"
                "id" : "Apps/tex3435",
                "value" : "test2"
            },
            {
                "name": "gasec1",
                "fullName": "gasec1",
                "key": "PRINCIPAL"
                "id" : "Apps/tex3433",
                "value" : "test"
            }
]

Я хочу получить идентификатор ключа PRINCIPAL.

Ответы [ 2 ]

2 голосов
/ 06 марта 2019

Простой цикл для получения ключа для значения> "PRINCIPAL":

d = [
{
"name": "ga0",
"fullName": "gac0",
"key": "office",
"id" : "Apps/tex3435",
"value" : "test2"
},   
{
"name": "gasec1",
"fullName": "gasec1",
"key": "PRINCIPAL",
"id" : "Apps/tex3433",
"value" : "test"
}]

for x in d:

    # x is a dictionary, so we now iterate over its key - value pair
    # Use x.iteritems() for Python 2

    for key, values in x.items():
        if values == 'PRINCIPAL':
            print(key)

# Using list comprehension
print([i for x in d for i, j in zip(x.keys(), x.values()) if j == 'PRINCIPAL'])
2 голосов
/ 06 марта 2019

Это решение возвращает список r записей в l, которые имеют key = PRINCIPAL.

l = [
            {
                "name": "ga0",
                "fullName": "gac0",
                "key": "office",
                "id" : "Apps/tex3435",
                "value" : "test2"
            },
            {
                "name": "gasec1",
                "fullName": "gasec1",
                "key": "PRINCIPAL",
                "id" : "Apps/tex3433",
                "value" : "test"
            }
]

r = filter(lambda k: k['key']=="PRINCIPAL", l)
print(r[0]['id'])
...