从词典中提取值并在Robot Framework中创建元组列表

时间:2018-04-23 21:48:51

标签: json robotframework

我正在尝试从字典中提取值并返回Robot Framework中的元组列表。你会建议怎么做吗?

我的JSON内容如下所示:

     {
      "_embedded" : {
     "products" : [ {
  "id" : "BMHY2IZB",
  "Name" : "ANR",
  "securityType" : "type1",
  "_links" : {
    "self" : {
      "href" : "https://test.com/v1/products/BMHY2IZB"
    },
    "relatedproducts" : {
      "href" : "https://test.com/v1/products/BMHY2IZB/related"
    }

  }
}, {
  "id" : "FXDNZBW",
  "Name" : "STREPLC",
  "securityType" : "ANV",
  "_links" : {
    "self" : {
      "href" : "https://test.com/v1/products/FXDNZBW"
    },
    "relatedProducts" : {
      "href" : "https://test.com/v1/products/FXDNZBW/related"
    }
  }
} ]
  },
   "page" : {
  "size" : 20,
  "totalElements" : 2,
  "totalPages" : 1,
  "number" : 0
  }
  }

使用Robot Framework中的以下代码:

 ${fileload} =   get file  ../../Resources/Sample.json
 ${json}=   to json    ${fileload}
 ${PRD}=  get from dictionary  ${json}  _embedded
 ${products}=  get from dictionary  ${PRD}  products
 ${PRDlist} =   create list
 : FOR  ${product}  in  @{products}
    \   append to list   ${PRDlist}   ${product}
  log to console    ${PRDlist}

我收到这样的回复:

  [{'id': 'BMHY2IZB', 'Name': 'ANR', 'securityType': 'type1', '_links': 
  {'self': {'href': 'https://test.com/v1/products/BMHY2IZB'}, 
  'relatedproducts': {'href': 'https://test.com/v1/products/BMHY2
  IZB/related'}}}, {'id': 'FXDNZBW', 'Name': 'STREPLC', 'securityType': 
 'ANV', 
 '_links': {'self': {'href': 'https://test.com/v1/products/FXDNZBW'}, 
 'relatedProducts': {'href': 
 'https://test.com/v1/products/FXDNZBW/related'}}}]

但是我希望选择的值作为元组列表返回:

 [{'BMHY2IZB','ANR','type1'},{'FXDNZBW','STREPLC','ANV'}]

1 个答案:

答案 0 :(得分:0)

这似乎有效:

import os                                                                                       
import collections

def APIResponse(dict):
    prds =  dict.get('_embedded')
    products = prds.get('products')
    l2 = []
    for i in range(len(products)):
        v1=  products[i].get('id')
        v2=  products[i].get('Name')
        v3=  products[i].get('securityType')
        l1 =  (v1,v2,v3)
        l2.append(l1)
    return l2