AttributeError: 'function' object has no attribute 'index'

AttributeError: 'function' object has no attribute 'index'

我已经创建了一个函数,可以通过输入值找到包含特定单词的列表。 我想从 '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):
 **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)

您正在调用 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)