您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 填充枚举数组

5b51 2022/1/14 8:21:35 python 字数 2958 阅读 511 来源 www.jb51.cc/python

我从困难的迁移中将enum放入我的桌面时遇到了麻烦.MVCE在这里:https://pastebin.com/ng3XcKLf(SQLAlchemy 1.2,psycopg2 2.7.3.2和postgres 10.1 - 第15行需要使用postgres URI进行修改)我阅读了有关SQLAlchemy / Postgres和Enums Arums的问题

概述

我从困难的迁移中将enum放入我的桌面时遇到了麻烦.

MVCE在这里https://pastebin.com/ng3XcKLf

(sqlAlchemy 1.2,psycopg2 2.7.3.2和postgres 10.1 – 第15行需要使用postgres URI进行修改)

我阅读了有关sqlAlchemy / Postgres和Enums Arums的问题,但根据我在问题跟踪器中找到的内容,用1.1解决了这个问题.

有人能指出我正确的方向吗?

变体1:尝试使用postgres枚举类型的属性

op.bulk_insert(permission,[{
    'name': 'ViewContent','contexts': [pgpermissioncontexts.resourceType]
}])

这失败了:AttributeError:’Enum’对象没有属性’resourceType’

变体2:尝试使用底层python Enum的属性

op.bulk_insert(permission,'contexts': [PermissionContexts.resourceType]
}])

这与以下类型为permissioncontexts []的sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError)col失败,但表达式的类型为text []

变体3:将字符串数组转换为枚举数组

op.bulk_insert(permission,'contexts': sa.cast([PermissionContexts.resourceType],sa.ARRAY(pgenum))
}])

这可能会也可能不会起作用 – python进程可以使用4GB的内存,然后坐在那里直到终止.

变体4:插入空数组

op.bulk_insert(permission,'contexts': []
}])

这很有效,但显然没有价值.

op.bulk_insert(permission,'contexts': [PermissionContexts.resourceType],}])

转换为ARRAY(permissioncontexts)也应该有效,并且在不使用bulk_insert()时可以正常工作

op.execute(permission.insert().values({
    'name': 'ViewContent',ARRAY(pgpermissioncontexts)),}))

或者在使用bulk_insert(multiinsert = False)时:

op.bulk_insert(permission,}],multiinsert=False)

似乎有一个malmbic或sqlalchemy处理多个游戏的错误.

总结

以上是编程之家为你收集整理的python – 填充枚举数组全部内容,希望文章能够帮你解决python – 填充枚举数组所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶