簡體   English   中英

如何以要求的格式返回 json

[英]How to return the json in a required format

Json在下方

result = {
  "took" : 21,
  "timed_out" : False,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "data",
        "_type" : "_doc",
        "_id" : "qwcs",
        "_score" : 1.0,
        "_source" : {
          "id" : "10",
          "name" : "Country ",
          "description" : "This product contains all currency details",
          "Owner" : {
            "id" : "11",
            "Name" : "David",
            "Email" : "nons@utc.com",
            "role" : "Analyst"
          },
          "Area" : [
            "Data Management"
          ],
          "Type" : [
            "API",
            "TXT"
          ],
          "Level" : [
            "A"
          ]
        }
      }
    ]
  }
}

我編寫了 python 代碼,通過 api 命中從彈性中提取數據,上面是結果

  • 樣本 api: http://utc.com/search/Owner.id?=11

  • 后端查詢會生成{'query': {'match': {'Owner.id': '11'}}}

  • 但我只需要一些小細節,預期結果如下

     "Owner": { "id": "11", "Name": "David", "Email": "nons@utc.com", "role": "Analyst" }

如果您說您只想返回hits列表中具有與您的查詢匹配的idOwner ,則可以使用列表理解:

query = {'query': {'match': {'Owner.id': '11'}}}
owners = [hit['_source']['Owner'] for hit in result['hits']['hits'] 
    if hit['_source']['Owner']['id'] == query['query']['match']['Owner.id']]

print(owners)

Output:

[{'id': '11', 'Name': 'David', 'Email': 'nons@utc.com', 'role': 'Analyst'}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM