code: def asDict(self, recursive=False):
          
          if not hasattr(self, "__fields__"):
              raise TypeError("Cannot convert a Row class into dict")
  
          if recursive:
              def conv(obj):
                  if isinstance(obj, Row):
                      return obj.asDict(True)
                  elif isinstance(obj, list):
                      return [conv(o) for o in obj]
                  elif isinstance(obj, dict):
                      return dict((k, conv(v)) for k, v in obj.items())
                  else:
                      return obj
              return dict(zip(self.__fields__, (conv(o) for o in self)))
          else:
              return dict(zip(self.__fields__, self))
docs: Return as an dict
  
          :param recursive: turns the nested Row as dict (default: False).
  
          >>> Row(name="Alice", age=11).asDict() == {'name': 'Alice', 'age': 11}
          True
          >>> row = Row(key=1, value=Row(name='a', age=2))
          >>> row.asDict() == {'key': 1, 'value': Row(age=2, name='a')}
          True
          >>> row.asDict(True) == {'key': 1, 'value': {'name': 'a', 'age': 2}}
          True