【问题标题】:How to extract a specific key from json in AWS Lambda?如何从 AWS Lambda 中的 json 中提取特定密钥?
【发布时间】:2021-02-05 04:31:19
【问题描述】:

我正在使用 AWS Lambda 并有以下输出:

输出是:

{
  "statusCode": 200,
  "headers": {
    "my_header": "my_value"
  },
  "body": [
    {
      "_index": "xyz",
      "_type": "_doc",
      "_id": "1",
      "_score": 2.6251922,
      "_source": {
        "ColW": "Ram",
        "ColX": "Shyam",
        "ColY": 123,
        "ColZ": "James"
      }
    }]

但是,我只想在正文中返回 ColW、ColX、ColY。我尝试了 search[0]['_source']['ColX'] 来打印 X 列,但它给了我错误。你能帮帮我吗?

【问题讨论】:

  • 你跳过了一级。试试search['body'][0]['_source']['ColX']

标签: json python-3.x aws-lambda


【解决方案1】:

我认为您跳过了一个级别,即您所拥有的输出的 body 节点。

因此,为了返回您需要的字段,您应该执行以下操作(这取决于您希望如何格式化输出)仅删除您不想要的节点: p>

filter_output = search['body'][0]['_source']
del filter_output['ColZ']
return filter_output

或者,如果您想以更详细的方式进行(因为您不知道是否会删除更多节点),您可以执行以下操作:

filter_output = {'ColW':search['body'][0]['_source']['ColW'],
                 'ColX':search['body'][0]['_source']['ColX'],
                 'ColY':search['body'][0]['_source']['ColY']}
return filter_output

在这种情况下,我创建了一个新的字典来仅返回所需的节点。

【讨论】:

    【解决方案2】:
    • 您可以删除不需要的键
    result = your_output_dictionary
    del result['body'][0]['_index'] # like this delete keys you don't want
    print(required_output) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-22
      • 2017-07-13
      • 1970-01-01
      • 2020-11-28
      • 2013-05-29
      • 2017-01-29
      • 1970-01-01
      • 2019-03-07
      相关资源
      最近更新 更多