AttributeError: 'NoneType' object has no attribute 'get'
__call__ ) -> cabc.Iterable[bytes]: """The WSGI server calls the Flask application object as the WSGI application. This calls :meth:`wsgi_app`, which can be wrapped to apply middleware. """ return self.wsgi_app(environ, start_response)wsgi_app try: ctx.push() response = self.full_dispatch_request() except Exception as e: error = e response = self.handle_exception(e) except: # noqa: B001 error = sys.exc_info()[1] raise return response(environ, start_response) finally:wsgi_app ctx = self.request_context(environ) error: BaseException | None = None try: try: ctx.push() response = self.full_dispatch_request() except Exception as e: error = e response = self.handle_exception(e) except: # noqa: B001 error = sys.exc_info()[1]full_dispatch_request request_started.send(self, _async_wrapper=self.ensure_sync) rv = self.preprocess_request() if rv is None: rv = self.dispatch_request() except Exception as e: rv = self.handle_user_exception(e) return self.finalize_request(rv) def finalize_request( self, rv: ft.ResponseReturnValue | HTTPException,full_dispatch_request try: request_started.send(self, _async_wrapper=self.ensure_sync) rv = self.preprocess_request() if rv is None: rv = self.dispatch_request() except Exception as e: rv = self.handle_user_exception(e) return self.finalize_request(rv) def finalize_request(dispatch_request and req.method == "OPTIONS" ): return self.make_default_options_response() # otherwise dispatch to the handler for that endpoint view_args: dict[str, t.Any] = req.view_args # type: ignore[assignment] return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] def full_dispatch_request(self) -> Response: """Dispatches the request and on top of that performs request pre and postprocessing as well as HTTP exception catching and error handling.destination now = datetime.now() last_modified=now.strftime("%Y-%m-%d") article_modified_time=now.isoformat() data['last_modified'] = last_modified data['article_modified_time'] = article_modified_time data['rating_schema'] = json.dumps(aggregate_rating(data)) # now = datetime.now() # formatted_date = now.strftime("%B %Y") # data['formatted_date'] = formatted_date # data['all_properties'] = data['properties'] + data['nearby_properties'] data['location_schema'] = json.dumps(get_location_schema(data))aggregate_rating 'total_review_count') or 1, "ratingCount": round( data.get('result').get('schema_info').get('aggregation_schema_data').get('total_rating_count'), 2) or 1, "itemReviewed": { "@type": "VacationRental", "name": data.get('result').get('geo_info').get('meta_info').get('meta_title'), "description": data.get('result').get('geo_info').get('meta_info').get('meta_description'), "image": f'https://www.vacationbyownerrentals.com/static/images/banner-images/{data.get("result").get("geo_info").get("page_path")}.png', "priceRange": f"${data.get('result').get('min_price')} - ${data.get('result').get('max_price')}", "amenityFeature": amenity_feature, "Geo": {AttributeError: 'NoneType' object has no attribute 'get'
This is the Copy/Paste friendly version of the traceback.
The console is locked and needs to be unlocked by entering the PIN. You can find the PIN printed out on the standard output of your shell that runs the server.