【问题标题】:float() argument must be a string or a number, not 'Float'float() 参数必须是字符串或数字,而不是 'Float'
【发布时间】:2020-04-24 06:30:23
【问题描述】:

我知道以前有人问过这个问题,但没有一个问题有帮助,因此再次问..

我正在使用石墨烯并在将一些 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 还很陌生,所以任何建议都将不胜感激。

请随时询问其他代码或信息,因为我已尝试粘贴我认为相关的任何内容

【问题讨论】:

    标签: python graphene-python graphene-sqlalchemy


    【解决方案1】:

    所以我不能发表评论,或者我会,我很可能是错的,但是这里是。

    我的猜测是你在某处调用float(score),但graphene.Float() 类型不能通过float() 直接转换为Python 浮点数。这可能是因为graphene.Float 类型由于继承自graphene.Scalar (graphene GH/Scalars) 具有如此多的数据,它可以在其数据结构中保存。

    我的猜测是找到float() 电话并将其删除。如果这不起作用,我会转到您查询中的 Float.num 字段。

    再一次,所有的猜测都在这里,但我希望它有所帮助。

    【讨论】:

      【解决方案2】:

      实际上我不能将字段直接传递给石墨烯对象,我们需要在具有石墨烯对象的类的 init 方法中传递它,然后我们需要在解析器方法中返回(在我的情况下 resolve_score )

      【讨论】:

        猜你喜欢
        • 2020-10-04
        • 1970-01-01
        • 1970-01-01
        • 2022-06-14
        • 2023-02-18
        • 2019-05-22
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多