gpt4 book ai didi

python - SQLAlchemy 警告 文本列表达式应该显式声明吗?

转载 作者:行者123 更新时间:2023-12-03 02:24:25 27 4
gpt4 key购买 nike

我不断收到此警告,无论怎样似乎都无法摆脱它(除了抑制它):

C:\...\site-packages\sqlalchemy\sql\elements.py:4390: SAWarning:
Textual column expression 'column_name' should be explicitly declared
with text('column_name'), or use column('column_name') for more
specificity

if guess_is_literal else "column"

我在一个元数据上下文中构建 Column() 对象(列名称 + 数据类型)的列表,然后在另一个元数据上下文中使用此列表创建一个表。虽然这有效,但它确实会发出此警告。我试过:

  • 将其存储为“引用名称”
  • 使用 column() 将列转换为“ColumnClause”
  • 使用 text() 将列转换为“TextClause”
  • 使用 str() 将列转换为字符串

无论如何,我仍然收到警告。

以下是一些 Python 代码片段:

for col_name in self.cols_source:
print(meta.tables[self.table_name].c[col_name].name)
print(type(meta.tables[self.table_name].c[col_name].name)) #quotedname
print(type(column(meta.tables[self.table_name].c[col_name].name))) #ColumnClause
print(type(text(meta.tables[self.table_name].c[col_name].name))) #TextClause
print(type(str(meta.tables[self.table_name].c[col_name].name))) #Str

#source_query_cols.append( Column( name=meta.tables[self.table_name].c[col_name].name, type_=meta.tables[self.table_name].c[col_name].type ))
#source_query_cols.append( Column( name=column(meta.tables[self.table_name].c[col_name].name), type_=meta.tables[self.table_name].c[col_name].type ))
#source_query_cols.append( Column( name=text(meta.tables[self.table_name].c[col_name].name), type_=meta.tables[self.table_name].c[col_name].type ))
source_query_cols.append( Column( name=str(meta.tables[self.table_name].c[col_name].name), type_=meta.tables[self.table_name].c[col_name].type ))

最佳答案

您应该将其转换为错误解释的文本。为此,请根据您的需要调整以下代码:)

from sqlalchemy.sql import text
...
cursor.execute(text(<whatever_needed_to_be_casted>))

关于python - SQLAlchemy 警告 文本列表达式应该显式声明吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54483184/

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