Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何访问列表中的消息键_Python_Python 3.x_List_Dictionary - Fatal编程技术网

Python 如何访问列表中的消息键

Python 如何访问列表中的消息键,python,python-3.x,list,dictionary,Python,Python 3.x,List,Dictionary,我想访问此词典列表中的“message”键值,但不知道如何访问 events [{'logStreamName': 'omkar/default/c09fabdb-c8f6-4e2b-935d-d8acd81fe5b6', 'timestamp': 1581492608825, 'message': 'initial_run.py', 'ingestionTime': 1581492608977, 'eventId': '35268463702765787750672147556453127

我想访问此词典列表中的“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'}]

您可以使用列表理解获得消息值列表-

message_list = [x['message'] for x in events]
*这假定事件中的每个条目始终存在一个消息键。如果没有,您可能需要使用

通过使用key(meassage)在事件anf中进行迭代,您可以得到它。

您可以试试这个

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))

它实际上是嵌套的dic..消息键在事件键内..并且希望访问消息的值key@swapnildeshpande首先,您最初的问题没有提到嵌套字典,其次,它仍然可以工作,因为它只需要访问事件中的任何内容。它将为您提供一个列表,其中列出了dictionaries@swapnildeshpande我编辑了我的代码,以包括访问
响应10
中的值(您在对另一个答案的评论中提到)为了使它更清晰,EV是普通变量,它将保存事件列表中存在的每个词汇。它给我类型错误:字符串索引必须是整数粘贴代码,粘贴您所做的操作。因为它在这里工作并逐个打印消息键的值'response10=client1.filter_log_事件(logGroupName='/aws/batch/job',#logStreamNames=[#'omkar/default',#],logstreamnameffix='omkar/default',#startTime=123,#endTime=123,#filterPattern='string',#nextToken='string',#limit=123,#interleaved=True | False)打印(响应10)“……response10是我们公司的名称dic@swapnildeshpande您可以编辑您的问题并将其添加到代码中,而不是将其作为注释添加到受字符数限制的位置,此外,到目前为止,这里的所有三个答案都可以从您提供的词典列表中获取
消息
的所有值,选择你最喜欢的并尝试实现它只是好奇,以这种方式映射是否比常规的列表理解更快?在过滤器、映射和列表理解中,什么是最快的并没有确凿的事实。然而,在大多数情况下,列表理解速度最快,过滤速度最慢。但在某些情况下,列表理解实际上较慢@karanshishoo,除非性能对这段代码(例如在一个非常常用的函数中)非常重要,否则更喜欢更简洁易读的列表理解。@DorianTurba同意,我会提到使用列表理解的解决方案,但已经有人发布了。因为我不想发布重复的解决方案。所以,发布替代解决方案。如果你认为我应该发布它更好,那么我会发布它并添加学分。事实上,它是相反的:“除了列表理解的语法优势外,它们通常与地图的等效使用一样快或更快。”-因此,是的,你应该改为使用列表理解。这是一个有效的答案,所以请保持原样,但与列表理解相比,它不太像pythonic,也不太优化。
from operator import itemgetter
res=list(map(itemgetter('message'),events))