Retrieve Method giving TypeError: 'int' object is not iterable
Retrieve Method giving TypeError: 'int' object is not iterable
当我删除便利 api 时,出现的问题是 TypeError: 'int' object is not iterable
并指向这一行 id, = args[0]
...我将如何解决这个问题?我分配 args[0] 的问题是否与此 Stacks 问题类似?
代码:
object.py (parent class)
def retrieve_assessment_result(self, *args):
id, owner, assessment = None, None, None
if len(args) == 1:
id, = args[0]
elif len(args) == 2:
owner, assessment = args
print 'testa', owner, assessment, id
else:
raise ValueError('Value being passed is an object')
if id is not None:
print 'testi', id
return self.session.query(Assessment_Result).\
filter(Assessment_Result.id == id).one()
elif owner is not None:
print 'testo', owner
return self.session.query(Assessment_Result).\
filter(Assessment_Result.owner == owner).one()
elif assessment is not None:
print 'testa', assessment
return self.session.query(Assessment_Result).\
filter(Assessment_Result.assessment == assessment).one()
convenience.py (child class)
def retrieve_assessment_result(self, username, name):
owner = self.retrieve_user(username)
assessment = self.retrieve_assessment(name)
return super(ConvenienceAPI, self).retrieve_assessment_result(owner, assessment)
问题 2 的回溯:
(当我删除 child class 以单独检查 ID
时)
...
File "/usr/local/lib/python2.7/site-packages/pyramid-1.5.7-py2.7.egg/pyramid/config/views.py", line 501, in _requestonly_view
response = view(request)
File "/Users/ack/code/venv/NotssWEB/notssweb/views/views.py", line 368, in get_assessment_result
assessment_result = api.retrieve_assessment_result(assessment_result_id)
File "/usr/local/lib/python2.7/site-packages/notssdb/api/object.py", line 313, in retrieve_assessment_result
id, = args[0] # <-- this the issue? see object.py above
TypeError: 'int' object is not iterable
您正在使用元组赋值;您正在尝试将一个整数分配给目标的 元组 。即使只有一个目标,也需要您的右手表达式生成具有等量元素的序列。
要么删除逗号,删除 [0]
切片,要么在右侧添加逗号以使其也成为元组:
id = args[0]
或
id, = args
或
id, = args[0],
但后一个选项是第一个选项的效率相当低的版本。
当我删除便利 api 时,出现的问题是 TypeError: 'int' object is not iterable
并指向这一行 id, = args[0]
...我将如何解决这个问题?我分配 args[0] 的问题是否与此 Stacks 问题类似?
代码:
object.py (parent class)
def retrieve_assessment_result(self, *args):
id, owner, assessment = None, None, None
if len(args) == 1:
id, = args[0]
elif len(args) == 2:
owner, assessment = args
print 'testa', owner, assessment, id
else:
raise ValueError('Value being passed is an object')
if id is not None:
print 'testi', id
return self.session.query(Assessment_Result).\
filter(Assessment_Result.id == id).one()
elif owner is not None:
print 'testo', owner
return self.session.query(Assessment_Result).\
filter(Assessment_Result.owner == owner).one()
elif assessment is not None:
print 'testa', assessment
return self.session.query(Assessment_Result).\
filter(Assessment_Result.assessment == assessment).one()
convenience.py (child class)
def retrieve_assessment_result(self, username, name):
owner = self.retrieve_user(username)
assessment = self.retrieve_assessment(name)
return super(ConvenienceAPI, self).retrieve_assessment_result(owner, assessment)
问题 2 的回溯:
(当我删除 child class 以单独检查 ID
时)
...
File "/usr/local/lib/python2.7/site-packages/pyramid-1.5.7-py2.7.egg/pyramid/config/views.py", line 501, in _requestonly_view
response = view(request)
File "/Users/ack/code/venv/NotssWEB/notssweb/views/views.py", line 368, in get_assessment_result
assessment_result = api.retrieve_assessment_result(assessment_result_id)
File "/usr/local/lib/python2.7/site-packages/notssdb/api/object.py", line 313, in retrieve_assessment_result
id, = args[0] # <-- this the issue? see object.py above
TypeError: 'int' object is not iterable
您正在使用元组赋值;您正在尝试将一个整数分配给目标的 元组 。即使只有一个目标,也需要您的右手表达式生成具有等量元素的序列。
要么删除逗号,删除 [0]
切片,要么在右侧添加逗号以使其也成为元组:
id = args[0]
或
id, = args
或
id, = args[0],
但后一个选项是第一个选项的效率相当低的版本。