- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在使用 SQL Alchemy 的 ORM,我发现当我返回单个列时,我得到的结果如下:
[(result,), (result_2,)] # etc...
有了这样的一套,我发现我必须经常这样做:
results = [r[0] for r in results] # So that I just have a list of result values
这并不是那么“糟糕”,因为我的结果集通常很小,但如果不是这样,这可能会增加大量开销。最大的问题是我觉得它使源代码困惑,错过这一步是我遇到的一个很常见的错误。
有没有办法避免这个额外的步骤?
一个相关的问题:在这种情况下,orm 的这种行为似乎很不方便,但在我的结果集是 [(id, value)] 的另一种情况下,它最终是这样的:
[(result_1_id, result_1_val), (result_2_id, result_2_val)]
然后我可以这样做:
results = dict(results) # so I have a map of id to value
这一步的好处是在返回结果后作为一个有用的步骤有意义。
这真的是一个问题,还是我只是个挑剔的人,得到结果集后的后处理对这两种情况都有意义?我相信我们可以想到一些其他常见的后处理操作,以使结果集在应用程序代码中更有用。是否有全面的高性能和方便的解决方案,或者后期处理是不可避免的,并且只是不同的应用程序使用所需要的?
当我的应用程序实际上可以利用 SQL Alchemy 的 ORM 返回的对象时,它似乎非常有用,但在我不能或不能的情况下,就没有那么多了。这只是一般 ORM 的常见问题吗?在这种情况下,我最好不要使用 ORM 层吗?
我想我应该展示一个我正在谈论的实际 orm 查询的示例:
session.query(OrmObj.column_name).all()
或
session.query(OrmObj.id_column_name, OrmObj.value_column_name).all()
当然,在实际查询中通常会有一些过滤器等。
最佳答案
减少源中困惑的一种方法是像这样迭代:
results = [r for (r, ) in results]
虽然这个解决方案比使用 []
运算符长一个字符,但我认为它更容易理解。
为了更简洁,请删除括号。这使得在阅读代码时更难注意到您实际上是在处理元组:
results = [r for r, in results]
关于python - SQLAlchemy ORM 返回单列,如何避免常见的后处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9486180/
我必须在 Python 中分析/可视化模拟(Simulink、EES)的结果。 平均我必须从结果文件中导入 40-100 个变量(每个变量是一个包含多个 thausend 行的向量):每个变量在 re
我有一个使用 glKit 运行的游戏,我想在每一帧渲染后使用着色器添加一些后期处理效果。 是否可以在 glKit 下执行此操作? 最佳答案 这是可能的。 您需要创建自己的屏幕外帧缓冲区对象和相关纹理。
我是 GPS 世界的新手。我需要知道如何使用 DGPS 进行后处理。我在网上找到了关于 DGPS、后处理等的定义,但是,找不到关于如何实际进行 DGPS 后处理的明确步骤。在搜索提供商时,我发现 CO
我正在研究从 Apache 切换到 Nginx 作为后端 Grails 应用程序前面的反向代理。我正在玩一些 URL 重写并且遇到了从我的后端发回的响应的问题。我可以处理位置 header 重写,但我
如何在 Assimp 中加载网格、编辑顶点,然后让 assimp 重新计算顶点并进行其他后处理? 导入器可以导入场景并支持一些标志,其中包括生成法线的标志。然而,在我加载网格之后,我稍微编辑了网格(添
我正在尝试实现来自 http://www.aftek.com/afteklab/aftek-RTMP-library.shtml 的库从 red5 服务器流式传输实时视频。 在服务器上,我正在使用 s
我在 Godot 中有一个项目可以在敌人上方渲染广告牌四边形。四边形(网格实例)是敌人节点的子节点。我只想将四边形渲染到视口(viewport)以进行后处理,但四边形需要在屏幕上具有与敌人相同的位置(
我正在设置一个服务器来使用 tesseract 进行大量自动 OCR,并且我想对结果进行一些后处理。 在理论方面有很多关于此的资源,但在实践方面我没有找到太多资源。 我想你可以做一些基本的事情,比如:
假设我有一个函数fancyParse,旨在获取服务器返回的响应并将其转换为其他内容。如果响应毫无意义,或者设置了特殊的“内部错误”标志,则该函数将抛出异常。 我想将此函数链接到 $.post 调用中以
我有一个带有 knockout 值的基本输入字段: 但是,我想在收到“mytext”的值后对我的 View 模型执行一些逻辑。最初我想到了某种后处理事件ala“valueUpdate”,但基本上我只
将 PostProcessEffectRenderer 的实现添加到 Unity 后处理堆栈后,该效果在 Unity 编辑器中完美运行,但未在构建的游戏中显示。 对构建质量的更改没有效果,使用最高质量
我有一堆相当冗长的 xml 文件,它们以某种方式命名,例如“verbosefile_*.xml”。我有一对 python 脚本,可以将这些 xml 文件转换为紧凑的 json 格式,反之亦然。目前我的
我需要对从包(包是共享对象文件)导入的函数进行多次调用。但是,每次我从这个包中调用函数时,我都需要执行一些预处理/后处理步骤。像这样的事情: import xyz prepare() xyz.foo(
我需要对从包(包是共享对象文件)导入的函数进行多次调用。但是,每次我从这个包中调用函数时,我都需要执行一些预处理/后处理步骤。像这样的事情: import xyz prepare() xyz.foo(
我的问题是是否有一种方法可以简单地发布处理 wicket HTML 响应? 我想做的是使用 Rhino (http://www.mozilla.org/rhino/) 和 jQuery 将一些 DOM
这是我要存储在我的 Realm 数据库中的类。在构建应用程序时,它会抛出 “错误:如果声明了自定义构造函数,则必须声明不带参数的默认公共(public)构造函数。” 但在使用 realm 之前没问题
我正在尝试组合 SMAA和 SSAO在我的 THREE.EffectComposer 中,如下所示: this.composer = new THREE.EffectComposer(this.ren
我正在尝试为我的应用程序开发直接文件上传到 S3。我正在关注 github 教程,一切都差不多,但是在尝试进行后期处理时收到错误消息。 我做了以下事情: 我有一个名为 clip.rb 的 active
我已经开始使用 C++ 并在 projecteuler.net 上摆弄一些问题。 我在回答问题 #4,这是我的代码: 判断数字是否为回文的算法: bool forwardCheck(long posP
我是一名优秀的程序员,十分优秀!