[英]float() argument must be a string or a number, not 'Float'
我知道以前有人问过这个问题,但没有一个问题有帮助,因此再次问..
我正在使用石墨烯并在将其传递给石墨烯之前解析一些 Elasticsearch 数据
PFB :- 我已解决的函数
def resolve_freelancers(self, info):
session = get_session()
[ids, scores] = self._get_freelancers()
freelancers = session.query(FreelancerModel).filter(FreelancerModel.id.in_(ids)).all()
for index in range(len(ids)):
print("index", scores[index])
freelancers[index].score = scores[index]
if self.sort:
reverse = self.sort.startswith("-")
self.sort = self.sort.replace("-", "")
if self.sort == "alphabetical":
freelancers = sorted(freelancers, key=lambda f: f.name if f.name else "", reverse=reverse)
if self.sort == "created":
freelancers = sorted(freelancers, key=lambda f: f.created_on, reverse=reverse)
if self.sort == "modified":
freelancers = sorted(freelancers, key=lambda f: f.modified_at, reverse=reverse)
freelancers = [Freelancer(f) for f in freelancers[self.start:self.end]]
session.close()
return freelancers
现在如果我这样做
print(freelancers[index].score)
它给了我10.989184
,它的类型是<class 'float'>
在我的class Freelancer(graphene.ObjectType):
我添加了score = graphene.Float()
现在,当我尝试将score
添加到我的查询时,它会给出错误.. 否则没有问题.. 我感兴趣的是在 json 响应中获取该分数值.. 我不明白是什么导致了这个错误,我我对 Python 相当陌生,因此任何建议都将不胜感激。
请随时询问其他代码或信息,因为我已尝试粘贴我认为相关的任何内容
所以我不能评论或者我会评论,我很可能是错的,但这里是。
我的猜测是,您在某个地方调用了float(score)
,但graphene.Float()
类型无法通过float()
直接转换为 Python 浮点数。 这可能是由于graphene.Float
类型由于继承自graphene.Scalar
( graphene GH/Scalars ),它可以在其数据结构中保存如此多的数据。
我的猜测是寻找float()
调用并将其删除。 如果这不起作用,那么我将转到查询中的Float.num
字段。
再次,所有猜测都在这里,但我希望它有所帮助。
实际上我不能将字段直接传递给石墨烯对象,我们需要在具有石墨烯对象的类的init方法中传递它,然后我们需要在解析器方法中返回(在我的例子中是 resolve_score )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.