2016-10-23 10 views
3

入力値で特定の単語を含むリストを検索する関数を作成しました。 私は '検索'機能から 'インデックス'を呼びたいと思います。しかし、私はこのような属性エラーメッセージを持っています。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

あなたはsearchが関数であるsearch2rad(search)としてsearch2rad関数の呼び出しを行っています。 search2rad()の中で、あなたがやっている:あなたはsearch.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): 

。それは機能(属性がない場合はindex)であるため、エラーが発生しています。

search()によって返された値を渡すことは、search2rad()を呼び出していると思います。そのために、あなたが行うことがあります。

search2rad(search()) 

しかし、きれいな方法は、それが好きでやって次のようになります。

index = search() 
search2rad(index) 
+0

を次に、どのように私はこの問題を解決することができますか? – Justin

+0

@Justin答えを編集しました。私はそれがあなたが必要としていると思う –

+0

ありがとう、しかし、私はsearch2rad(インデックス)を印刷することはできません、どうすれば印刷できますか?ごめんなさい。 – Justin

関連する問題