diff options
author | Ross Brattain <ross.b.brattain@intel.com> | 2017-08-14 20:30:39 -0700 |
---|---|---|
committer | Ross Brattain <ross.b.brattain@intel.com> | 2017-08-15 05:13:38 +0000 |
commit | 605a15e8d226b7ecb663ca9a088e544b58060d06 (patch) | |
tree | 88546df449be77d0d51289f9ae6edbb4db4a0662 /yardstick/network_services/vnf_generic/vnfdgen.py | |
parent | 0e21cfca2c8cd9cf9d06480d0f6e0b8e7535808d (diff) |
deepgetitem: try string index before int
Change-Id: I3b353c5887db0ebbe33e37db505e72b85167b54e
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
Diffstat (limited to 'yardstick/network_services/vnf_generic/vnfdgen.py')
-rw-r--r-- | yardstick/network_services/vnf_generic/vnfdgen.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/yardstick/network_services/vnf_generic/vnfdgen.py b/yardstick/network_services/vnf_generic/vnfdgen.py index 0120b493e..474403dee 100644 --- a/yardstick/network_services/vnf_generic/vnfdgen.py +++ b/yardstick/network_services/vnf_generic/vnfdgen.py @@ -73,19 +73,24 @@ def deepgetitem(obj, item, default=None): add try_int to work with sequences - >>> d = {'snl_final': {'about': {'_icsd': {'icsd_id': 1, 'fr': [2, 3]}}}} + >>> d = {'snl_final': {'about': {'_icsd': {'icsd_id': 1, 'fr': [2, 3], '0': 24, 0: 4}}}} >>> deepgetitem(d, 'snl_final.about._icsd.icsd_id') 1 >>> deepgetitem(d, 'snl_final.about._sandbox.sbx_id') >>> >>> deepgetitem(d, 'snl_final.about._icsd.fr.1') 3 + >>> deepgetitem(d, 'snl_final.about._icsd.0') + 24 """ def getitem(obj, name): - # if integer then list index - name = try_int(name) + # try string then convert to int try: return obj[name] except (KeyError, TypeError, IndexError): - return default + name = try_int(name) + try: + return obj[name] + except (KeyError, TypeError, IndexError): + return default return reduce(getitem, item.split('.'), obj) |