python - float() 参数必须是字符串或数字,而不是 '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 来说相当新,所以任何建议都将不胜感激。
请随时询问其他代码或信息,因为我试图粘贴我认为相关的任何内容
解决方案
实际上我不能将字段直接传递给石墨烯对象,我们需要在具有石墨烯对象的类的init方法中传递它,然后我们需要在解析器方法中返回(在我的例子中是 resolve_score)
推荐阅读
- typescript - TypeScript - 如何在编译时检查对象是否实现接口?
- php - Wordpress URL 重写。删除 CPT slug,但保留子页面功能
- json - 在没有插件的notepad++中美化JSON
- firebase - Firestore 文档关系
- javascript - 单击第一个元素时的JavaScript滑块移动到最后一个元素
- elasticsearch - cpu/mem如何区分不同节点
- javascript - MVC .NET Core UseStaticFiles OnPrepareResponse 未命中 JavaScript 文件
- vue.js - 我可以在定义路由的元数据时访问路由器查询参数吗?
- reactjs - 使用 React Native 应用程序实现强制更新
- regex - Delphi 中的 RegEx 去除字符串中的回车符和换行符