title: Convert all 'bytes' to 'str' in an object consiting of random nested built-in types
body: <p>Here's my attempt:</p>
  <pre><code>def convert(data):
      if isinstance(data, bytes):
          return data.decode('ascii')
      elif isinstance(data, dict):
          return dict(map(convert, data.items()))
      elif isinstance(data, tuple):
          return map(convert, data)
      else:
          return data
  </code></pre>
  <p>Can this be better generalized and or improve legibility?</p>