SQLAlchemy 提交 pickle 类型

2024-03-04

我在 sqlalchemy 中提交对 pickle 类型(列表)的更改时遇到问题。提交后它将表现得好像什么也没发生一样。

这是我尝试提交的功能:

def commit_move(game_id, player, move):
    game = game_query(game_id)
    if player == 'human':
        game.human_spaces.append(move)
    if player == 'ai':
        game.ai_spaces.append(move)
    game.available_spaces.remove(move)
    print game.human_spaces
    print game.ai_spaces
    print game.available_spaces
    print "----"
    session.add(game)
    session.commit()

该表的设置方式如下:

class Game(Base):
    __tablename__ = 'game'
    id = Column(Integer, primary_key=True)
    human_spaces = Column(PickleType)
    ai_spaces = Column(PickleType)
    available_spaces = Column(PickleType)

这是我用来测试它的代码:

game_id = create_game()
print game_id
print get_available_spaces(game_id)
print get_human_spaces(game_id)
print get_ai_spaces(game_id)
print "---------"
commit_move(game_id, 'human', 7)
print get_available_spaces(game_id)
print get_human_spaces(game_id)
print get_ai_spaces(game_id)

这就是老终端告诉我的内容:

1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[]
[]
---------
[7]
[]
[1, 2, 3, 4, 5, 6, 8, 9]
----
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[]
[]

我确信我在这里缺少一些简单的东西,但任何帮助将不胜感激!


问题是 ORM 不会收到关于可变类型(如列表)内的更改的警报。因此,SQLAlchemy 提供了突变跟踪sqlalchemy.ext.mutable扩大。

从示例中文档 http://docs.sqlalchemy.org/en/latest/orm/extensions/mutable.html,特别是参考sqlalchemy.ext.mutable.MutableList类,看起来列声明应该去(例如):

human_spaces = Column(MutableList.as_mutable(PickleType))

我引用了有关的文档as_mutable方法: “这建立了侦听器,将检测针对给定类型的 ORM 映射,并将突变事件跟踪器添加到这些映射中。”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQLAlchemy 提交 pickle 类型 的相关文章

随机推荐

  • 将图像存储在本地以用于开发 s3 以用于生产 Rails Paperclip

    我想将图像上传到本地计算机上进行开发 但将它们存储在我的 Amazon S3 帐户上进行生产 上传 rb if Rails env development has attached file photo styles gt thumb gt
  • 合并最接近值的 Pandas

    我目前正在开发一个项目 在该项目中 我通过仪表指示 公里 匹配并合并两个 Excel 文档 这两个数据帧包含相同类型的数据 但略有不同 我对这个问题的解决方案是将每个数据帧除以 100 以便更轻松地匹配列 然而 正如我预测的那样 有时这不起
  • 如何查看上次 git pull 的时间?

    I did a git pull但现在想知道那件事发生在什么时间 有没有办法检查拉动的时间 请注意 当我进行拉动时 没有发生任何变化 但也许 SSH 连接已被记录 我想在本地计算机而不是服务器上检查这一点 使用 Linux git 版本 2
  • 使用 webView 时是否可以将 HTML 表单中的数据获取到 android 中?

    我正在 HTML 中制作一个非常简单的表单 可以使用 webview 在 android 中查看 该 webview 使用文本框接收您的姓名 当您单击按钮时 它会将其显示到一个段落中 并且它是使用 html 和 javascript 制作的
  • 如何隐藏ide主窗口标题栏? (在 IntelliJ IDEA 中)

    Title bar is completely useless for me Info it shows i can see in navigation bar It only takes space Is it possible to h
  • 提取分隔符之间具有特定长度的整数

    给定一个字符串列表 例如 L 1759 1 83 0 email protected cdn cgi l email protection email protected cdn cgi l email protection 1094 em
  • 如何根据 MVCContrib 网格中的数据设置行的样式?

    我正在修补MVCContrib 网格 http mvccontrib codeplex com wikipage title Grid并陷入如何根据数据格式化网格中的一行数据的问题 例如 假设我们有一个产品网格 其中每个产品都有名称 价格和
  • 端点“/api-docs”不适用于自定义 GsonHttpMessageConverter

    我从 Springfox Swagger 迁移到 Springdoc OpenApi 我在有关 springdoc 的配置中添加了几行 springdoc pathsToMatch api api docs path api docs sw
  • 在外部文件中保存Python字典?

    我正在编写的代码本质上是一个超级基本的人工智能系统 基本上是 Cleverbot 的简单 Python 版本 作为代码的一部分 我有一个起始字典 其中有几个键 其中包含列表作为值 文件运行时 字典会被修改 创建键并将项目添加到关联列表中 所
  • 使用 jquery 和 cookie 切换和保留状态

    我有 2 个用 jquery 切换的 div 我希望它们在页面重新加载时具有相同的状态 因此使用 coockie 但无论如何它都会卡在其中一个 div 上 那是因为我似乎无法设置正确的 coockie 怎么了
  • 重命名 Rails 4 应用程序

    我创建了一个 Rails 4 应用程序 但名称已更改 我已经更新了文件夹名称 但我想知道我需要进入并更新哪些文件才能在整个站点中使用这个新名称 或者是否有 Rails 命令可以快速轻松地完成此操作 https github com mors
  • CSS 转换被 JavaScript 阻止

    我正在尝试在veryJavaScript 的密集期 其中构建并填充了一些相当重的 3d 数组 该加载栏需要保持为空 直到用户单击按钮 发生结冰现象是否我在用着 webkit transition 这个应用程序可以是 chrome 独有的 在
  • 关于 requireEnd Matcher 方法的澄清

    直接来自this http docs oracle com javase 7 docs api java util regex Matcher html requireEnd 28 29java API 公共布尔 requireEnd 如果
  • 如何合并字体?

    我有很多字体 OpenSans bold ttf OpenSans boldItalic ttf OpenSans extrabold ttf OpenSans italic ttf OpenSans light ttf 我将如何继续只创建
  • 在RecyclerView顶部设置进度条并在数据加载后删除

    我想要一个加载图标 显示在 RecyclerView 所在位置的顶部 并在数据加载完成后消失 它看起来像 谁能帮我吗 我的代码显示 RecyclerView 上方有一个 TextView 上面写着 正在加载 并在数据加载后消失 但 Recy
  • 在 cURL PHP 中发送请求时出现 401 未经授权的响应

    我正在尝试使用 GitLab API 解决我的 gitlab 项目问题 我已经尝试过 但它似乎不起作用
  • ms Access 从查询中的文件导入表

    有没有办法让 msAccess DB 查询从文件导入表 是的 只要数据被组织起来 您可以将 VBA 或宏与 TransferText 一起使用 也可以使用菜单或功能区中的 获取外部数据 这将指导您完成这些步骤 EDIT 您可以从 CSV 导
  • NSString 到 NSArray

    我想分割一个NSString进入一个NSArray 例如 给定 NSString myString ABCDEF 我想要一个NSArray like NSArray myArray A B C D E F 如何使用 Objective C
  • GWT为移动设备定制CellList多选模型

    我有一个使用 MultiSelectionModel 的应用程序 它工作得很好 但我需要我正在开发的网站才能在移动设备上工作 所以我无法使用键盘来帮助选择元素 因为它不支持 不存在 例如 在桌面上 我只需按住 ctrl 并单击我想要选择的所
  • SQLAlchemy 提交 pickle 类型

    我在 sqlalchemy 中提交对 pickle 类型 列表 的更改时遇到问题 提交后它将表现得好像什么也没发生一样 这是我尝试提交的功能 def commit move game id player move game game que