code: def data_value(searchpath, searchtree, dtype = None, default = None):
      
      if is_data_value(searchpath, searchtree, dtype):
          if isinstance(searchpath, (str, unicode, int)):
              searchpath = [searchpath]
  
          for d in searchpath:
              searchtree = searchtree[d]
  
      else:
          searchtree = None
  
      if searchtree == None:
          if default != None:
              return default
  
          elif dtype in (str, unicode, 'string'):
              return ""
  
          elif dtype == dict:
              return {}
  
          elif dtype in (list, tuple, 'list'):
              return []
  
      return searchtree
docs: Follow searchpath through the datatree in searchtree
      and return if it exists a value of type dtype
      searchpath is a list of keys/indices
      If dtype is None check for any value
      If it is not found return default or if dtype is set to
      a string, list or dict, an empty one