如何提取 kwargs 中的嵌套变量?

How to extract nested variables in kwrgs?

我有一个函数应该从远程服务器获取查询并 运行 它在 OsQuery 上。我已经能够配置它,以便数据从远程服务器发送并在 kwargs 数据结构中接收。

当我 运行 print(kwargs) 它显示一个长的字典时,我在其中有一个名为 'osquery_query' 的字段,我想提取并打印出来。

输出如下所示:

 'object_type': 4, 'principal': {'display_name': 'XXXX', 'id': 1, 'name': 'XXXX', 'type': 'user'}, 'properties': {**'osquery_query': 'select * from logged_on_users'**}, 'row': None, 'task': None, 'type_info': {'artifact': {'fields': {'relating_incidents': {'id': 121, 'values': {}}, 'summary': {'id': 122, 'values': {}}

我尝试使用 kwargs.get 提取数据,如下所示:

def _osquery_handler_function(self, event, *args, **kwargs):
    query = kwargs.get('osquery_query')
    print("Query Is: %s", query)

但这并没有真正捕捉到任何东西(只是告诉我它是空的)我如何从字典中提取数据并打印出来?

要从嵌套字典或其他嵌套数据结构中获取值,您需要分别对每个级别进行索引,如下所示:

def _osquery_handler_function(self, event, *args, **kwargs):
     query = kwargs['properties']['osquery_query']
     print("Query Is: %s", query)