Как получить доступ к ключу сообщения внутри списка - PullRequest
0 голосов
/ 12 февраля 2020

Я хочу получить доступ к значению ключа 'message' в этом списке словарей, но не могу понять, как это сделать.

events [{'logStreamName': 'omkar/default/c09fabdb-c8f6-4e2b-935d-d8acd81fe5b6',
 'timestamp': 1581492608825, 'message': 'initial_run.py', 'ingestionTime': 1581492608977, 'eventId':
 '35268463702765787750672147556453127148731795119999483904'}, {'logStreamName':
 'omkar/default/c09fabdb-c8f6-4e2b-935d-d8acd81fe5b6', 'timestamp': 1581492608825,
 'message': 'initial_run.sh', 'ingestionTime': 1581492608977, 'eventId': '35268463702765787750672147556453127148731795119999483905'}, {'logStreamName':
 'omkar/default/c09fabdb-c8f6-4e2b-935d-d8acd81fe5b6', 'timestamp': 1581492608825,
 'message': 'second_script.sh', 'ingestionTime': 1581492608977, 'eventId': '35268463702765787750672147556453127148731795119999483906'}, {'logStreamName': 'omkar/default/c09fabdb-c8f6-4e2b-935d-d8acd81fe5b6', 'timestamp': 1581492608865,
 'message': 'in python output_2 hello output_2', 'ingestionTime': 1581492608977, 'eventId': '35268463703657817558613372482114555879637729580238700547'}, {'logStreamName': 'omkar/default/c09fabdb-c8f6-4e2b-935d-d8acd81fe5b6', 'timestamp': 1581492608866, 'message': 'output_2', 'ingestionTime': 1581492608977,
 'eventId': '35268463703680118303811903105256091597910377941744680964'}, {'logStreamName': 'omkar/default/c09fabdb-c8f6-4e2b-935d-d8acd81fe5b6', 'timestamp': 1581492608868, 'message': '/usr/local/bin/initial_run.py', 'ingestionTime': 1581492608977, 'eventId': '35268463703724719794208964351539163034455674664756641797'}]

Ответы [ 3 ]

2 голосов
/ 12 февраля 2020
for ev in event:
...     print(ev['message'])
...

итерации по событию и внутри, вы можете получить, используя ключ (meassage)

2 голосов
/ 12 февраля 2020

Вы можете попробовать это.

res=list(map(lambda x:x['message'],events))
print(res)
#['initial_run.py', 'initial_run.sh', 'second_script.sh', 'in python output_2 hello output_2', 'output_2', '/usr/local/bin/initial_run.py']

Если вы не хотите использовать lambda, вы можете использовать itemgetter.

from operator import itemgetter
res=list(map(itemgetter('message'),events))
2 голосов
/ 12 февраля 2020

Вы можете получить список значений сообщения, используя список понимания -

message_list = [x['message'] for x in events]

* Это предполагает, что ключ сообщения всегда существует для каждой записи в событии. Если это не так, вам может понадобиться defaultdict .

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