Squeak.ru - шаблоны программирования

python/flask TypeError: объект 'float' не вызывается

Я развертываю простой API, написанный на python (Flask), но получаю странную ошибку «TypeError: 'float' object is not callable». Однако объект имеет тип int, что я и подтвердил. Я даже пытался применить тип int с помощью «для счетчика в диапазоне (int (additional_params_count)):», но это не помогло.

Ниже приведено сообщение об ошибке и источник

 1
 <type 'int'>
 [20130826-16:14PM] [flats_api] [ERROR] Exception on /v1/closest_point [GET]
 Traceback (most recent call last):
   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
     response = self.full_dispatch_request()
   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request
     rv = self.handle_user_exception(e)
   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception
     reraise(exc_type, exc_value, tb)
   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request
     rv = self.dispatch_request()
   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request
     return self.view_functions[rule.endpoint](**req.view_args)
   File "/var/www/flats_api/flats_api.py", line 104, in closest_point
     for counter in range(0,additional_params_count):
 TypeError: 'float' object is not callable

источник:

def closest_point():
         lng = request.args.get('lng', default=None, type=float)
         lat = request.args.get('lat', default=None, type=float)

         price_min = request.args.get('price_min',default=None, type=float)
         price_max = request.args.get('price_max',default=None, type=float)

         rooms_min = request.args.get('rooms_min',default=None, type=float)
         rooms_max = request.args.get('rooms_max',default=None, type=float)

         if (lng != None) and (lat != None):
                 range = 0.1
                 lng_min = lng - range
                 lng_max = lng + range
                 lat_min = lat - range
                 lat_max = lat + range

                 cur = g.db.cursor()
                 query = "SELECT id, link, price, longitude, latitude FROM " + DATABASE_TABLE_NAME + " WHERE latitude >= " + str(lat_min) + " AND latitude <= " + str(lat_max) + " AND longitude >= " + str(lng_min) + " AND longitude <= " + str(lng_max)

                 # I always have 5 basic parameters to group by. I count number of additional parameters to know how many to add
                 additional_params_count = 0
                 if price_min:
                         query = query + " AND price >= " + str(price_min)
                         additional_params_count = additional_params_count + 1
                 query = query + "GROUP BY 1,2,3,4,5"
                 print additional_params_count
                 print type(additional_params_count)
                 for counter in range(0,additional_params_count):
                         print counter
                         query = query + "," + str(counter + 6)
                 query = query + ";"
                 print query
                 cur.execute(query)
                 columns = [desc[0] for desc in cur.description]
                 rows = cur.fetchall()
                 flats_json = []
                 for row in rows:
                         flats_json.append(dict((k,str(v)) for k,v in zip(columns,row)))
                 response_body = str(rows)
                 return json.dumps(flats_json)
         else:
                 return "One of lng or lat parameters missing"
26.08.2013

Ответы:


1

Вы назначили range поплавку в своем коде, не делайте этого, иначе вы не сможете получить доступ к встроенному range() тогда:

if (lng != None) and (lat != None):
     range = 0.1       ###########

Демонстрация:

>>> range = 0.1
>>> range()
Traceback (most recent call last):
  File "<ipython-input-39-7b0c968826c1>", line 1, in <module>
    range()
TypeError: 'float' object is not callable
26.08.2013
Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...