Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python &引用;注入;将外来数据库中的字典数据导入SQLAlchemy对象_Python_Mysql_Flask_Sqlalchemy - Fatal编程技术网

Python &引用;注入;将外来数据库中的字典数据导入SQLAlchemy对象

Python &引用;注入;将外来数据库中的字典数据导入SQLAlchemy对象,python,mysql,flask,sqlalchemy,Python,Mysql,Flask,Sqlalchemy,我正在制作一个machinelearning模型的原型,以生成对象的“排序数据”。对象存储在mysql数据库中,通过SQLAlchemy抽象层访问。现在,我想通过从第二台服务器(运行ML的服务器)提取的数据对这些数据进行过滤和排序 到目前为止,我通过将从ML服务器提取的id添加到IN filter语句中,成功地过滤了数据: .filter(Job.id.in_(list(sum(ai_match, ())))) 而ai_match是从ML服务器提取的id的元组。这很好,但我也希望在ML服务器中

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

到目前为止,我通过将从ML服务器提取的id添加到IN filter语句中,成功地过滤了数据:

.filter(Job.id.in_(list(sum(ai_match, ()))))
而ai_match是从ML服务器提取的id的元组。这很好,但我也希望在ML服务器中按
相似性对列表进行排序。从SQL的角度来看,这只是两个数据库的内部连接:

`SELECT * FROM jobs 
INNER JOIN mlserver.matches ON mlserver.matches.job_id = jobs.id`
然而,ML服务器不是一个SQL Alchemy对象,我也不想创建一个(因为这个项目非常庞大和复杂,我自己没有能力深入到整个项目结构中)

这就引出了一个问题: 如何将数据“注入”到existin SQL Alchemy对象中,以便在字典上实现所需的联接,该字典的格式为
[(作业id,相似性),]


谢谢你的帮助

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

# 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)