SQLAlchemy 返回奇怪的数据

2023-12-04

我正在尝试从表中导出日期。我只想将原始创建的对象拉出来。

我正在运行以下查询:

return model.Session.query(cls).filter(cls.issue_id == issue_id).order_by(desc("created")).first()

但它返回整个记录,我不知道如何导出创建的。

<IssueComment id=32 comment=ay user_id=578042a3-d879-4b32-96a9-10f9aabe152c issue_id=19 created=2018-07-17 20:17:09.653809 visibility=visible abuse_status=0>

如果我尝试像这样调用在 cls.created 中创建的

return model.Session.query(cls.created).filter(cls.issue_id == issue_id).order_by(desc("created")).first()

它导出一个奇怪的日期时间版本。我只想要原始版本

(datetime.datetime(2018, 7, 17, 20, 17, 9, 653809),)

如何将创建的值导出为原始字符串?


SqlAlchemy 查询属性(而不是整个模型)返回KeyedTuples (or RowSQLAlchemy 1.4 中的对象)其行为类似于命名元组。与普通的 Python 元组一样,tuple单个元素由尾随逗号构成。这就是为什么你的结果(datetime.datetime(2018, 7, 17, 20, 17, 9, 653809),)显示日期时间对象,后跟逗号。

>>> row = session.query(User.creation_timestamp).first()
>>> row
(datetime.datetime(2018, 4, 22, 9, 20, 56),)  # <- trailing comma because it's a tuple

可以通过索引访问值

>>> row[0]
datetime.datetime(2018, 4, 22, 9, 20, 56)

或者按名字

>>> row.creation_timestamp
datetime.datetime(2018, 4, 22, 9, 20, 56)

这些值是带有所有常用方法的 python 对象

>>> row.creation_timestamp.isoformat()
'2018-04-22T09:20:56'
>>> str(row.creation_timestamp)
'2018-04-22 09:20:56'

有点令人困惑的是tutorial.first()

应用 1 的限制并以标量形式返回第一个结果

该示例显示返回的单个对象,如下所示:

>>> q = session.query(User).first()
>>> q
<User object at 0x7f97d8c6b590>

而首先按属性调用查询会返回一个包含在元组中的值。如果您将元组视为结果集中的一行,这是有意义的。如果你打电话.all()在您的查询中,您将获得元组(行)的列表。如果你打电话.limit(1).all()在您的查询中,您将得到一个包含单个元组的列表。所以当你打电话时.first()你得到的第一个结果是.limit(1).all(),这是一个元组。

>>> row = session.query(User.creation_timestamp).all()
>>> row
[(datetime.datetime(2018, 4, 22, 9, 20, 56),), (datetime.datetime(2018, 4, 22, 9, 20, 56),), ...]

>>> row = session.query(User.creation_timestamp).limit(1).all()
>>> row
[(datetime.datetime(2018, 4, 22, 9, 20, 56),)]

>>> row = session.query(User.creation_timestamp).first()
>>> row
(datetime.datetime(2018, 4, 22, 9, 20, 56),)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLAlchemy 返回奇怪的数据 的相关文章

随机推荐

  • Tensorflow,如何将 2D 张量(矩阵)乘以 1D 向量中的相应元素

    我有一个二维矩阵M形状的 batch x dim 我有一个向量V形状的 batch 如何将矩阵中的每一列乘以 V 中的相应元素 那是 我知道一个低效的 numpy 实现将如下所示 import numpy as np M np random
  • Java:哪个更快?局部变量还是访问封装?

    我最近读了一篇StackOverflow问题这表明 访问变量时 使用堆栈比使用堆更快 void f int x 123 lt located in stack int x lt located in heap void f x 123 但是
  • 如何在 swift 闭包中抛出错误?

    请看下面的代码 override func tableView tableView UITableView editActionsForRowAtIndexPath indexPath NSIndexPath gt UITableViewR
  • 打印 PHP 调用堆栈

    我正在寻找一种在 PHP 中打印调用堆栈的方法 如果该函数刷新 IO 缓冲区 则会获得奖励点 比以下内容更具可读性debug backtrace e new Exception var dump e gt getTraceAsString
  • get 请求在 Node.JS 和 Express 中不起作用

    我的 app get 没有运行 我不知道为什么 我也尝试过使用 作为路线 但我无法返回任何内容 我已经发布了下面的代码 const express require express const morgan require morgan co
  • 在android 2.3上通过HTTPS播放.m3u8文件

    在我的代码中的某个时刻 应用程序发现一个指向 m3u8 文件的 URL 这就是接下来发生的事情 mVideoView setVideoURI Uri parse feed getUrl toString feed getUrl return
  • 有没有办法让 Ant 创建 shell 或批处理运行时脚本?

    有没有办法让 Ant 创建运行时 shell 或批处理运行时脚本 而不必自己手动创建脚本 它的功能类似于链接文本 是的 这是可以做到的 这是一个简单的示例 您的链接现在不起作用 抛出了 sourceforge 错误 基本思想是使用echo任
  • 在真实手机(而不是模拟器)上使用 adb logcat

    当我使用 Android 模拟器时 我可以执行 adb logcat 来查看源自我的代码的输出消息 log system out println 它还显示执行期间发生的异常的堆栈跟踪 但是 当我使用真正的手机时 adb logcat 不会执
  • 将单词转换为字符数组

    如何将单词转换为字符数组 可以说我有 肺炎超微硅火山尘肺病 这个词 是的 这是一个词 我想给这个词赋一个数值 a 1 b 2 z 26 int alpha 1 int Bravo 2 基本代码 if testvalue a Debug Wr
  • Android 方向变化

    我的选项卡式应用程序不会通过方向更改重新显示视图 I added android configChanges keyboardHidden orientation 到主选项卡活动和清单中的每个活动 我将这个方法添加到每个活动中 public
  • Objective C 中的 Sqlite 数据库插入语句

    我尝试仅将两个整数变量插入到我的 sqlite 数据库中 我创建了一个名为 ups sqlite 的数据库 它有一个表 upssTable 该表有两列 但是当我打开 Users ds Library Application Support
  • 分解 LPARAM 变量并查看位组

    我知道 LPARAM 变量设置了某些位 在其内部 当我收到 WM KEYDOWN 事件时 这些位可识别诸如长按键等信息 所以我试图分解一个 LPARAM 变量并查看各个位值组和位组以及该值 例如查看第 16 位到第 24 位以及其中的值 我
  • C# HTML 从 WebBrowser 到有效的 XHTML

    因此 我们在编辑模式下使用 webBrowser 控件 允许人们输入文本 然后将该文本发送到服务器供每个人查看 IE 它是一个HTML输入框 该框的 HTML 输出不是标准的 XHTML 因为它只是一个 webBrowser 控件 因此我需
  • 如何检查列表中的哪些项目满足特定条件?

    如何创建一个名为busLineLonger的函数 它至少接收两个参数来决定公交线路是否更长 This is how it works busStops number of the bus number of stops busLineLon
  • 从 MVC 3 中的 ActionResult 类型方法将 JSon 数组返回到 $.ajax

    我有一个 TreeView 助手 它获取类别列表及其链接 我这样做了 helper TreeView FavouriteLinksXmlMVC3 Controllers HomeController cat cat new Favourit
  • 使用来自内容提供商和活动的 MvvmCross

    我正在尝试在我的一个应用程序中使用 MvvmCross v3 该应用程序由活动 内容提供程序和广播接收器组成 然而 我并没有很成功 该应用程序由一个包含逻辑 模型和视图模型的 Core PCL 和一个包含所有 MonoDroid 特定内容的
  • 从 C# 引用 VBA 程序集时出现运行时错误

    我有一个 C NET 3 5 项目 不幸的是它依赖于几个 VB6 ActiveX 控件 到目前为止 我已经能够通过简单地在项目中添加对控件的引用并正常引用它们来愉快地访问 ActiveX 控件中定义的数据容器和方法 然而 今天我遇到了一个障
  • 当父进程退出时,如何使子进程退出?

    我正在使用 ProcessBuilder 启动一个子进程 并且如果父进程退出 则需要子进程退出 在正常情况下 我的代码会正确停止孩子 但是 如果我导致操作系统杀死父进程 子进程将继续运行 有什么方法可以将子进程 绑定 到父进程 这样当父进程
  • 如何绘制实心圆?

    我正在根据规范使用 C 代码创建位图 bmp 文件 并且我想在位图上绘制简单的图元 以下代码显示了如何在位图上绘制矩形 if curline gt type 1 draw a rectangle int xstart curline gt
  • SQLAlchemy 返回奇怪的数据

    我正在尝试从表中导出日期 我只想将原始创建的对象拉出来 我正在运行以下查询 return model Session query cls filter cls issue id issue id order by desc created