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

时间:2016-12-19 11:08:53

标签: python mysql flask sqlalchemy

我正在为机器学习模型进行原型设计,以便为对象生成“排序数据”。对象存储在mysql db中,可通过SQLAlchemy抽象层访问。现在我想通过从第二台服务器(ML运行的地方)拉出的数据对这些数据进行过滤和排序。

到目前为止,我已经设法通过将从ML服务器中提取的id添加到IN Filter语句来过滤数据:

.filter(Job.id.in_(list(sum(ai_match, ()))))

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

`SELECT * FROM jobs 
INNER JOIN mlserver.matches ON mlserver.matches.job_id = jobs.id`
然而,ML服务器不是SQL Alchemy对象,我不想创建一个(因为项目相当庞大且非常复杂,我无法深入到整个项目结构中)。

这引出了我的问题: 如何将数据“注入”到现有的SQL Alchemy对象中,以便在字典上实现所需的JOIN格式为[(job_id, similarity),]

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

class Foo(object):
  def __init__(self, lots_of_stuff):
    lotsofthingsbeingdone()

class Bar(Foo):
  def core_functionality(self, something):
    val =  does_something_important(something)
    return val