Takes an object and makes it stringy
    >>> print(stringer({'a': 1, 2: 3, 'b': [1, 'c', 2.5]}))
    {'b': ['1', 'c', '2.5'], 'a': '1', '2': '3'}

def stringer(x):
    """
    Takes an object and makes it stringy
    >>> print(stringer({'a': 1, 2: 3, 'b': [1, 'c', 2.5]}))
    {'b': ['1', 'c', '2.5'], 'a': '1', '2': '3'}
    """
    if isinstance(x, string_types):
        return x
    if isinstance(x, (list, tuple)):
        return [stringer(y) for y in x]
    if isinstance(x, dict):
        return dict((stringer(a), stringer(b)) for a, b in x.items())
    return text_type(x)