首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将外部数据库中的字典数据“注入”到SQLAlchemy对象中

将外部数据库中的字典数据“注入”到SQLAlchemy对象中
EN

Stack Overflow用户
提问于 2016-12-19 19:08:53
回答 1查看 40关注 0票数 2

我正在制作一个机器学习模型的原型,为对象生成“排序数据”。这些对象存储在通过SQLAlchemy抽象层访问的mysql中。现在,我想通过从第二个服务器(运行ML的服务器)获取的数据对这些数据进行过滤和排序。

到目前为止,我已经成功地通过将从ML-server拉出的id添加到IN filter语句来过滤数据:

代码语言:javascript
复制
.filter(Job.id.in_(list(sum(ai_match, ()))))

而ai_match是从ML服务器中提取的id的元组。这工作得很好,但我想按ML服务器中的similarity对列表进行排序。从SQL的角度来看,这只是两个数据库之间的内部连接:

代码语言:javascript
复制
`SELECT * FROM jobs 
INNER JOIN mlserver.matches ON mlserver.matches.job_id = jobs.id`

然而,ML Server不是SQL Alchemy对象,我不想创建一个(因为这个项目相当庞大和非常复杂,而且我自己没有能力深入了解整个项目结构)。

这就引出了一个问题:如何将数据“注入”到现有的SQL Alchemy对象中,以便在[(job_id, similarity),]格式的字典上获得所需的连接

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

发布于 2016-12-19 23:41:48

如果不能创建SQLAlchemy对象,最简单的选择可能是使用存储在字典中的相似性信息对查询后的结果进行排序:

代码语言:javascript
复制
# get sqlalchemy results
results = Job.query.filter(Job.id.in_(list(sum(ai_match, ())))).all()

# dict of id/value you want to sort on
ai_similarity = {x.id: x.value for x in ai_similarity_source}

# imagine you'd want to use try/except on KeyError here
results.sort(key=lambda x: ai_similarity[x.id], reverse=True)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41221276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档