+ def process_value(val):
+ if isinstance(val, dict):
+ val_dict = dict()
+ for val_k, val_v in val.iteritems():
+ val_dict[str(val_k)] = process_value(val_v)
+ return val_dict
+ elif isinstance(val, list):
+ for idx, val_l in enumerate(val):
+ val[idx] = process_value(val_l)
+ return val
+ elif hasattr(val, '__int__'):
+ return int(val)
+ elif hasattr(val, '__str__'):
+ return binascii.hexlify(str(val))
+ # Next handles parameters not supporting preferred integer or string
+ # representation to get it logged
+ elif hasattr(val, '__repr__'):
+ return repr(val)
+ else:
+ return val
+