code: def bytes2str_in_dicts(inp  # type: Union[MutableMapping[Text, Any], MutableSequence[Any], Any]
                        ):
      # type: (...) -> Union[Text, MutableSequence[Any], MutableMapping[Text, Any]]
      
  
      # if input is dict, recursively call for each value
      if isinstance(inp, MutableMapping):
          for k in inp:
              inp[k] = bytes2str_in_dicts(inp[k])
          return inp
  
      # if list, iterate through list and fn call
      # for all its elements
      if isinstance(inp, MutableSequence):
          for idx, value in enumerate(inp):
              inp[idx] = bytes2str_in_dicts(value)
              return inp
  
      # if value is bytes, return decoded string,
      elif isinstance(inp, bytes):
          return inp.decode('utf-8')
  
      # simply return elements itself
      return inp
docs: Convert any present byte string to unicode string, inplace.
      input is a dict of nested dicts and lists