gpt4 book ai didi

python - 比较sqlalchemy核心中的两个uuid

转载 作者:行者123 更新时间:2023-11-29 13:16:35 25 4
gpt4 key购买 nike

我正在使用 sqlalchemy 1.2

简而言之,产生错误的原因是:

uuidvar = uuid4()
mytable.select().where(mytable.c.uuidColumn == uuidvar) #where mytable is of type sqlalchemy.Table

错误:

  File "/Users/remi/PycharmProjects/my_venv/lib/python3.6/site-packages/sqlalchemy/dialects/postgresql/psycopg2.py", line 448, in process
value = _python_UUID(value)
File "/usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/uuid.py", line 137, in __init__
hex = hex.replace('urn:', '').replace('uuid:', '')

sqlalchemy.exc.StatementError: (builtins.AttributeError) 'UUID' object has no attribute 'replace' [SQL: 'SELECT col1, col2, col3 FROM myTable \nWHERE uuidColumn = '%(uuidColumn_1)s']

像这样的表:

CREATE TABLE myTable (
uuidColumn uuid primary key default uuid_generate_v4()
col1 text,
col2 text,
col3 text
)

在 python 中生成表:

metadata = MetaData(engine=db) # db is created by "create_engine", nothing fancy
myTable = Table('myTable', metadata, autoload=True)

最佳答案

我遇到了类似的问题。要解决此错误,您需要定义 uuidColumn 为 as_uuid=True。像这样:

from sqlalchemy.dialects import postgresql
uuidColumn = db.Column(postgresql.UUID(as_uuid=True))

有关更多详细信息,请在此处查看 Michael Bayer 的评论:https://bitbucket.org/zzzeek/sqlalchemy/issues/3323/in-099-uuid-columns-are-broken-with

关于python - 比较sqlalchemy核心中的两个uuid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48098432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com