def recurseSearch(parentNode, principal, comparables, limit, comparableCount): ''' Recursively creates a network of comparable real estate. Height of the tree = limit. Number of leaf nodes = comparableCount ** (limit - 1) ''' print("Height Level: {}".format(limit)) if limit == 1: return True else: for comp in comparables: compObj = Property(comp['zpid'], comp['links'], comp['address'], comp['zestimate'], comp['localRealEstate'], principal=principal) tempParent = Node(compObj.zpid, parent=parentNode) tempPrinciple, tempComparables = compObj.searchComparables( comparableCount) recurseSearch(tempParent, tempPrinciple, tempComparables, limit - 1, comparableCount)
contentDict = xmltodict.parse(response.content) parentNode = contentDict['Comps:comps']['response']['properties']['principal'] # Comparables are a list of dictionaries comparables = contentDict['Comps:comps']['response']['properties']['comparables']['comp'] for comp in comparables: print(comp['@score'], comp['localRealEstate']) return contentDict ''' initialNode = searchProperty() initialProperty = Property(initialNode['zpid'], initialNode['links'], initialNode['address'], initialNode['zestimate'], initialNode['localRealEstate']) first = Node(initialProperty.zpid) principal, comparables = initialProperty.searchComparables() # Creating Property objects from list of comparables levelCount = 0 # {"Tree-Height": parentNode} NodeDict = {str(levelCount): first} def recurseSearch(parentNode, principal, comparables, limit, comparableCount): ''' Recursively creates a network of comparable real estate. Height of the tree = limit. Number of leaf nodes = comparableCount ** (limit - 1) ''' print("Height Level: {}".format(limit)) if limit == 1: return True else: for comp in comparables: