Заимствуя MWE из этого вопроса , у меня есть набор вложенных диктов:
{
"type": "A"
"a": "aaa",
"payload": {"another":{"dict":"value", "login":"user1"}},
"actor": {"dict":"value", "login":"user2"}
}
{
"type": "B"
"a": "aaa",
"payload": {"another":{"dict":"value", "login":"user3"}},
"actor": {"dict":"value", "login":"user4"}
}
}
{
"type": "A"
"a": "aaa",
"b": "bbb",
"payload": {"another":{"dict":"value", "login":"user5"}},
"actor": {"dict":"value", "login":"user6"}
}
}
{
"type": "A"
"a": "aaa",
"b": "bbb",
"payload": {"login":"user5"},
"actor": {"login":"user6"}
}
}
Для словарей, имеющих "type":"A"
, я хочу получить имя пользователя из payload
dict и имя пользователя из actor
dict. Одно и то же имя пользователя может появляться несколько раз. Я хотел бы сохранить текстовый файл со списком actor
(ID1) и списком payload
(ID2) следующим образом:
ID1 ID2
user2 user1
user6 user5
user6 user5
Прямо сейчас у меня есть начало:
zgrep "A" | zgrep -o 'login":"[^"]*"' | zgrep -o 'payload":"[^"]*" > usernames_list.txt
Но, конечно, это не сработает, потому что мне нужно найти логин внутри dict полезной нагрузки и логин внутри dict актера для каждого dict типа A.
Есть мысли?