Python class 未找到导入属性
Python class import attribute not found
我是 python 的新手,我正在尝试创建一个非常简单的 API REST 服务调用。我需要此数据以便将其导入另一个仅支持 python 的应用程序。我的问题是我创建了一个 python class 并试图将其导入我的应用程序。我有几个错误,然后修改了我的 class 文件,包括添加一个名为 parse_json 的新函数。当我 运行 我的应用程序现在说该对象没有属性 parse_json。当我 运行 直接在 class 中的代码工作时,但是 运行 从一个单独的文件中导入 class 给我上面的错误。
../bin/lib/meetupapi.py -> 我的class 文件
class MeetupAPI(object):
BASE_URL = 'https://api.meetup.com'
def __init__(self, request_uri, api_key, group_urlname):
self.request_uri = request_uri
self.api_key = api_key
self.group_urlname = group_urlname
# Parse JSON query from API Call
def parse_json(self, url, result_type=0):
self.url = url
self.result_type = result_type
self.json_obj = urllib2.urlopen(self.url)
self.data = json.load(self.json_obj)
if result_type is not 0:
if self.data[result_type]:
return json.dumps(self.data[result_type])
else:
return json.dumps(self.data)
# Get member IDs for profile
def get_mid(self, request_type):
self.request_type = request_type
if self.request_type == 'member':
self.url = MeetupAPI.BASE_URL + '/2/members?key=' + \
self.api_key + '&group_urlname=' + self.group_urlname
elif self.request_type == 'event':
url = MeetupAPI.BASE_URL + '/2/events?key=' + \
self.api_key + '&group_urlname=' + self.group_urlname
self.json_obj = urllib2.urlopen(self.url)
self.data = json.load(self.json_obj)
self.mids = []
for self.item in self.data['results']:
if self.item['id']:
self.mids.extend([self.item['id']])
return self.mids
# Get Group IDs for reference
def get_gid(self):
self.url = MeetupAPI.BASE_URL + '/' + \
self.group_urlname + '?key=' + self.api_key
return self.url
# Main Meetup API Query for group based information
def query(self):
self.url = MeetupAPI.BASE_URL + self.request_uri + '?key=' + \
self.api_key + '&group_urlname=' + self.group_urlname
return self.url
# Get member or event profile information
def profile(self,mid,gid):
self.mid = mid
self.gid = gid
self.url = MeetupAPI.BASE_URL + '/2/profile/' + \
str(self.gid) + '/' + \
str(self.mid) + '?key=' + self.api_key
return self.url
../bin/test.py -> 我的测试文件
# Import required libraries
from meetupapi import MeetupAPI
Meetup = MeetupAPI(
'/2/members',
'xxxxxxx',
'xxxxxxx'
)
mids = Meetup.get_mid('member')
group = Meetup.get_gid()
gid = Meetup.parse_json(group, 'id')
for mid in mids:
member = Meetup.profile(mid, gid)
profile = Meetup.parse_json(member)
print profile
运行宁
时出错
Traceback (most recent call last):
File "./test2.py", line 25, in <module>
gid = Meetup.parse_json(group, 'id')
AttributeError: 'MeetupAPI' object has no attribute 'parse_json'
请记住,我以前从未在 python 中写过 class,所以我可能遗漏了一些非常简单的东西。我已经查看了我能找到的为其他人提供的所有答案,但似乎没有合适的答案。如果您能提供任何帮助,我们将不胜感激。
检查 meetupapi.pyc 的 lib 目录(注意 "c")并将其删除。然后再次尝试导入模块。模块在导入时被编译为字节码。如果您修改文件,新的编译 应该 已经自动完成,但也许不会。
我是 python 的新手,我正在尝试创建一个非常简单的 API REST 服务调用。我需要此数据以便将其导入另一个仅支持 python 的应用程序。我的问题是我创建了一个 python class 并试图将其导入我的应用程序。我有几个错误,然后修改了我的 class 文件,包括添加一个名为 parse_json 的新函数。当我 运行 我的应用程序现在说该对象没有属性 parse_json。当我 运行 直接在 class 中的代码工作时,但是 运行 从一个单独的文件中导入 class 给我上面的错误。
../bin/lib/meetupapi.py -> 我的class 文件
class MeetupAPI(object):
BASE_URL = 'https://api.meetup.com'
def __init__(self, request_uri, api_key, group_urlname):
self.request_uri = request_uri
self.api_key = api_key
self.group_urlname = group_urlname
# Parse JSON query from API Call
def parse_json(self, url, result_type=0):
self.url = url
self.result_type = result_type
self.json_obj = urllib2.urlopen(self.url)
self.data = json.load(self.json_obj)
if result_type is not 0:
if self.data[result_type]:
return json.dumps(self.data[result_type])
else:
return json.dumps(self.data)
# Get member IDs for profile
def get_mid(self, request_type):
self.request_type = request_type
if self.request_type == 'member':
self.url = MeetupAPI.BASE_URL + '/2/members?key=' + \
self.api_key + '&group_urlname=' + self.group_urlname
elif self.request_type == 'event':
url = MeetupAPI.BASE_URL + '/2/events?key=' + \
self.api_key + '&group_urlname=' + self.group_urlname
self.json_obj = urllib2.urlopen(self.url)
self.data = json.load(self.json_obj)
self.mids = []
for self.item in self.data['results']:
if self.item['id']:
self.mids.extend([self.item['id']])
return self.mids
# Get Group IDs for reference
def get_gid(self):
self.url = MeetupAPI.BASE_URL + '/' + \
self.group_urlname + '?key=' + self.api_key
return self.url
# Main Meetup API Query for group based information
def query(self):
self.url = MeetupAPI.BASE_URL + self.request_uri + '?key=' + \
self.api_key + '&group_urlname=' + self.group_urlname
return self.url
# Get member or event profile information
def profile(self,mid,gid):
self.mid = mid
self.gid = gid
self.url = MeetupAPI.BASE_URL + '/2/profile/' + \
str(self.gid) + '/' + \
str(self.mid) + '?key=' + self.api_key
return self.url
../bin/test.py -> 我的测试文件
# Import required libraries
from meetupapi import MeetupAPI
Meetup = MeetupAPI(
'/2/members',
'xxxxxxx',
'xxxxxxx'
)
mids = Meetup.get_mid('member')
group = Meetup.get_gid()
gid = Meetup.parse_json(group, 'id')
for mid in mids:
member = Meetup.profile(mid, gid)
profile = Meetup.parse_json(member)
print profile
运行宁
时出错Traceback (most recent call last):
File "./test2.py", line 25, in <module>
gid = Meetup.parse_json(group, 'id')
AttributeError: 'MeetupAPI' object has no attribute 'parse_json'
请记住,我以前从未在 python 中写过 class,所以我可能遗漏了一些非常简单的东西。我已经查看了我能找到的为其他人提供的所有答案,但似乎没有合适的答案。如果您能提供任何帮助,我们将不胜感激。
检查 meetupapi.pyc 的 lib 目录(注意 "c")并将其删除。然后再次尝试导入模块。模块在导入时被编译为字节码。如果您修改文件,新的编译 应该 已经自动完成,但也许不会。