sve*_*ema 10 python sqlalchemy python-3.x
我不断收到此警告,无论如何似乎都无法摆脱它(除了压制它):
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"
Run Code Online (Sandbox Code Playgroud)
我在一个元数据上下文中构建了一个 Column() 对象(列名 + 数据类型)列表,然后在另一个元数据上下文中使用这个列表创建一个表。虽然这有效,但它确实给出了这个警告。我试过了:
无论如何,我仍然收到警告。
以下是 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 ))
Run Code Online (Sandbox Code Playgroud)
您应该按照错误说明将其转换为文本。为此,请根据您的需要调整以下代码:)
from sqlalchemy.sql import text
...
cursor.execute(text(<whatever_needed_to_be_casted>))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10262 次 |
| 最近记录: |