
import click
import json
import six


def flatten(d, prefix=''):
    ret = []
    for k, v in d.items():
        p = k if not prefix else prefix + '.' + k
        if isinstance(v, dict):
            ret += flatten(v, prefix=p)
        else:
            ret.append("%s=%s" % (p, v))
    return ret


def print_json(result_json):
    formatted_result = json.dumps(result_json, indent=4)
    click.echo(formatted_result)


def sanitize_kwargs(**kwargs):
    kwargs = dict((k, v) for k, v in six.iteritems(kwargs) if v)

    try:
        kwargs['data'] = json.loads(kwargs['data'])
    except KeyError:
        pass

    return kwargs


import click
import json
import six


def flatten(d, prefix=''):
    ret = []
    for k, v in d.items():
        p = k if not prefix else prefix + '.' + k
        if isinstance(v, dict):
            ret += flatten(v, prefix=p)
        else:
            ret.append("%s=%s" % (p, v))
    return ret


def print_json(result_json):
    formatted_result = json.dumps(result_json, indent=4)
    click.echo(formatted_result)


def sanitize_kwargs(**kwargs):
    kwargs = dict((k, v) for k, v in six.iteritems(kwargs) if v)

    try:
        kwargs['data'] = json.loads(kwargs['data'])
    except KeyError:
        pass
    except TypeError:
        pass

    return kwargs

Fix TypeError exception when parsing json
Fix TypeError exception when parsing json

This change fixes the TypeError exception that is raised when it should
not while parsing json

File "/usr/lib64/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer

Change-Id: I1b9670adcc505084fecb54a45ce11029dc8a4d93

  
  import click
  import json
  import six
  
  
  def flatten(d, prefix=''):
      ret = []
      for k, v in d.items():
          p = k if not prefix else prefix + '.' + k
          if isinstance(v, dict):
              ret += flatten(v, prefix=p)
          else:
              ret.append("%s=%s" % (p, v))
      return ret
  
  
  def print_json(result_json):
      formatted_result = json.dumps(result_json, indent=4)
      click.echo(formatted_result)
  
  
  def sanitize_kwargs(**kwargs):
      kwargs = dict((k, v) for k, v in six.iteritems(kwargs) if v)
  
      try:
          kwargs['data'] = json.loads(kwargs['data'])
      except KeyError:
          pass
+     except TypeError:
+         pass
  
      return kwargs
  
Fix TypeError exception when parsing json
## Code Before:

import click
import json
import six


def flatten(d, prefix=''):
    ret = []
    for k, v in d.items():
        p = k if not prefix else prefix + '.' + k
        if isinstance(v, dict):
            ret += flatten(v, prefix=p)
        else:
            ret.append("%s=%s" % (p, v))
    return ret


def print_json(result_json):
    formatted_result = json.dumps(result_json, indent=4)
    click.echo(formatted_result)


def sanitize_kwargs(**kwargs):
    kwargs = dict((k, v) for k, v in six.iteritems(kwargs) if v)

    try:
        kwargs['data'] = json.loads(kwargs['data'])
    except KeyError:
        pass

    return kwargs

## Instruction:
Fix TypeError exception when parsing json
## Code After:

import click
import json
import six


def flatten(d, prefix=''):
    ret = []
    for k, v in d.items():
        p = k if not prefix else prefix + '.' + k
        if isinstance(v, dict):
            ret += flatten(v, prefix=p)
        else:
            ret.append("%s=%s" % (p, v))
    return ret


def print_json(result_json):
    formatted_result = json.dumps(result_json, indent=4)
    click.echo(formatted_result)


def sanitize_kwargs(**kwargs):
    kwargs = dict((k, v) for k, v in six.iteritems(kwargs) if v)

    try:
        kwargs['data'] = json.loads(kwargs['data'])
    except KeyError:
        pass
    except TypeError:
        pass

    return kwargs
