2016-10-23 3 views
3

Я создал функцию, которая находит список, включая конкретное слово, по значению ввода. Я бы назвал 'index' функцией 'search'. Но у меня есть сообщение об ошибке Attribute;AttributeError: объект 'function' не имеет атрибута 'index'

if distance.haversine([search.index]['geometry']['coordinates'][1], 
[search.index]['geometry']['coordinates'][0],t_dicc['tuits']['coordinates']['latitud'], 
t_dicc['tuits']['coordinates']['longitud']<=radius): 
**AttributeError: 'function' object has no attribute 'index'** 

Я пытался изменить много раз, но это не сработало.

import os 
import string 
import json 
from pprint import pprint 
import distance 

def main(): 

f = open('monumentos-reducido.json', 'r') 
mo_dicc = json.load(f) 

g = open('tuits.json', 'r') 
t_dicc = json.load(g) 

def search(): 

    word = raw_input("monument name : ") 

    if(word in value for word in ('nombre')): 
     try: 
      StopIteration 

      if word > 1: 

       index = next(index for (index, d) in enumerate(mo_dicc['features']) if d["properties"]["nombre"] == word) 

      pprint(mo_dicc['features'][index]) 

     except StopIteration: 

      exit() 


search() 


radius = input("radius(meters) : ") 


def search2rad(search): 

    resultlst = [] 

    if distance.haversine([search.index]['geometry']['coordinates'][1],[search.index]['geometry']['coordinates'][0], t_dicc['tuits']['coordinates']['latitud'], t_dicc['tuits']['coordinates']['longitud']<=radius): 
     index = next(index for (index, d) in enumerate(t_dicc['tuits']) if d['coordenadas']) 
     resultlst.append(t_dicc['tuits'][index]) 
    print resultlst 

search2rad(search) 

ответ

1

Вы делаете вызов search2rad функции, как search2rad(search) где search функция. В search2rad(), вы делаете:

if distance.haversine([search.index]['geometry']['coordinates'][1],[search.index]['geometry']['coordinates'][0], t_dicc['tuits']['coordinates']['latitud'], t_dicc['tuits']['coordinates']['longitud']<=radius): 

Здесь вы упомянули search.index. Это ошибка повышения, поскольку она является функцией (без атрибута index).

Я думаю, что вы хотите сделать, это передать значение, возвращаемое search(), на номер search2rad(). Для этого, вы можете сделать:

search2rad(search()) 

Но уборщик способом будет делать это нравится:

index = search() 
search2rad(index) 
+0

Тогда, как я могу решить эту проблему? – Justin

+0

@ Justin Изменил ответ. Я думаю, что это то, что вам нужно –

+0

Спасибо, но я не могу распечатать search2rad (index), как я могу печатать? Прости. – Justin

Смежные вопросы