2017-06-18 11 views
1

ロボットフレームワークを使用して辞書の下のリストのKey "name"の値をすべて抽出する方法がわかりません。私を助けてください。あなたはこのような何かを行うことができ辞書のリスト内の特定のKeyのすべての値をロボットフレームワークを使用して抽出する

{'data': [{'attributes': {'name': 'Acura'}, 
      'id': 'de3fe2a2-eaa1-45d8-8d6b-298e0b2d0666', 
      'type': 'brands'}, 
      {'attributes': {'name': 'Alfa Romeo'}, 
      'id': '52b33ad8-71ab-4fdb-b877-a6080e86439c', 
      'type': 'brands'}, 
      {'attributes': {'name': 'Audi'}, 
      'id': '5f627b7a-193a-40a0-9db7-b8b504177435', 
      'type': 'brands'}, 
      {'attributes': {'name': 'BMW'}, 
      'id': 'dad04367-2248-45b3-b523-0be7cc7bfbad', 
      'type': 'brands'}, 
      {'attributes': {'name': 'Buick'}, 
      'id': '64f77989-3007-41f5-b5c4-8cb5f4a25d45', 
      'type': 'brands'}, 
      {'attributes': {'name': 'Cadillac'}, 
      'id': 'a457ba4e-5f74-4b9a-9316-d26962284983', 
      'type': 'brands'}, 
      {'attributes': {'name': 'Chevrolet'}, 
      'id': '118e4876-993d-4ad0-91f4-ae3d25b1e5f5', 
      'type': 'brands'}], 
'meta': {'total': 48}} 

答えて

1

このSO questionでは、ドット表記の問題を通常のPythonの辞書を参照するとき。これは、通常のPython Dictをロボット固有のDotDictに変換することで解決されました。

また、上記のデータが静的である場合は、Yaml fileからインポートすることも考えられます。この場合、ロボットのドット表記も使用できます。

サイクリングに関しては辞書を想定し、その後の名前をフェッチを変数Dに割り当てられ、dict.pyというファイルに保存され、これはあなたが名前を取得することができます:

*** Settings *** 
Variables dict.py 
*** Test Cases *** 
test 
    Log To Console \n  
    :FOR ${node} IN @{d['data']} 
    \ Log To Console ${node['attributes']['name']} 

になりますどの次の出力:

test                 

Acura 
Alfa Romeo 
Audi 
BMW 
Buick 
Cadillac 
Chevrolet 
| PASS | 
3

aが辞書の名前です

>>> [ i['attributes']['name'] for i in a['data']] 
['Acura', 'Alfa Romeo', 'Audi', 'BMW', 'Buick', 'Cadillac', 'Chevrolet'] 

3

dを辞書名とします。名前は以下のコードをusind抽出することができます。

names = [a['attributes']['name'] for a in d['data']] 

結果:

print names 
[u'Acura', u'Alfa Romeo', u'Audi', u'BMW', u'Buick', u'Cadillac', u'Chevrolet'] 
関連する問題