Python SQLAlchemy TypeError:_get_column_info()获取了意外的关键字参数';生成';
我正在尝试从红移数据库获取表的元数据。 即使连接正常,我也会出错。 “TypeError:\u get\u column\u info()获取了一个意外的关键字参数“generated” 我尝试了另一个不同服务器的数据库它工作正常。。。 但是不确定这个服务器表有什么问题。 你能帮我想出一个解决办法吗 Table=sa.Table(“Tablename”,元数据,autoload=True,autoload_with=engine)Python SQLAlchemy TypeError:_get_column_info()获取了意外的关键字参数';生成';,python,sqlalchemy,amazon-redshift,metadata,Python,Sqlalchemy,Amazon Redshift,Metadata,我正在尝试从红移数据库获取表的元数据。 即使连接正常,我也会出错。 “TypeError:\u get\u column\u info()获取了一个意外的关键字参数“generated” 我尝试了另一个不同服务器的数据库它工作正常。。。 但是不确定这个服务器表有什么问题。 你能帮我想出一个解决办法吗 Table=sa.Table(“Tablename”,元数据,autoload=True,autoload_with=engine) TypeError回溯(最近一次调用) 在里面 ---->1
TypeError回溯(最近一次调用)
在里面
---->1 Table=sa.Table(“经销商尺寸”,元数据,自动加载=True,自动加载=engine)
新功率(cls,*args,**kw)
警告中的~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\util\deprecations.py(fn,*args,**kwargs)
126 )
127
-->128返回fn(*args,**kwargs)
129
130 doc=fn.\uuuuu doc\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\sql\schema.py in\uuuuuu new\uuuu(cls,*args,**kw)
494除:
495和util.safe_reraise()
-->496元数据。删除表(名称、架构)
497
498@property
~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\util\langhelpers.py in\uuuuu退出(self,type,value,traceback)
66 self._exc_info=None#删除潜在的循环引用
67如果不是仅自我警告:
--->68兼容性(exc_类型、exc_值、exc_tb)
69.其他:
70如果不是compat.py3k和self.\u exc\u info和self.\u exc\u info[1]:
~\AppData\Local\Continuum\anaconda3\lib\`在此处输入代码`site packages\sqlalchemy\util\compat.py以重新登录(tp、值、tb、原因)
151如果值.\uuuu回溯\uuuuuu不是tb:
152提升值。带回溯(tb)
-->153提高价值
154
155 def u(s):
~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\sql\schema.py in\uuuuuu new\uuuu(cls,*args,**kw)
489元数据。添加表(名称、架构、表)
490试试:
-->491表._init(名称、元数据、*args、**kw)
492表。调度。在\u父\u附加后(表,元数据)
493返回表
~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\sql\schema.py in_init(self、name、metadata、*args、**kwargs)
583包括_列,
584(扩展)=(扩展),
-->585 resolve_fks=resolve_fks,
586 )
587
自动加载中的~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\sql\schema.py(self、元数据、自动加载、包含列、排除列、解析fks、扩展打开)
607不包括_列,
608解决问题,
-->609 _extend_on=_extend_on,
610 )
611其他:
~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\engine\base.py in run\u callable(self,callable,*args,**kwargs)
2148 """
2149,以self.\u context\u connect()作为连接:
->2150返回连接运行可调用(可调用,*args,**kwargs)
2151
2152 def execute(self、语句、*多内存、**参数):
~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\engine\base.py in run\u callable(self,callable,*args,**kwargs)
1602
1603 """
->1604返回可调用函数(self、*args、**kwargs)
1605
1606定义运行访问者(自我、访问者可调用、元素、**kwargs):
反射表中的~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\engine\default.py(self、connection、table、include\u列、exclude\u列、resolve\u fks、**opts)
429 insp=来自发动机(连接)的反射检查员
430返回检查反射表(
-->431表,包括列、排除列、解析列、**选项
432 )
433
反射表中的~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\engine\reflection.py(self、table、include\u columns、exclude\u columns、resolve\u fks、\u extend\u on)
638
639用于self.get\u列中的列(
-->640表格名称,模式,**表格.QUARGS
641 ):
642已找到\u表=真
get_列中的~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\engine\reflection.py(self,table_name,schema,**kw)
371
372 col_defs=self.dialogue.get_列(
-->373 self.bind,表名,模式,info\u cache=self.info\u cache,**千瓦
374 )
375对于Colu def中的Colu def:
在get_列中(self、connection、table_name、schema、**kw)
缓存中的~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\engine\reflection.py(fn、self、con、*args、**kw)
54 ret=info\u cache.get(键)
55如果ret为无:
--->56 ret=fn(自身、con、*args、**kw)
57信息缓存[键]=返回
58返回ret
get\u列中的~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\u redshift\dialogue.py(self、connection、table\u name、schema、**kw)
459 default=col.default,notnull=col.notnull,domains=domains,
460枚举=[],模式=列模式,编码=列编码,
-->461注释=列注释)
462列。追加(列信息)
463个返回列
~\AppData\Local\Continuum\anaconda3\lib\site packages\sqlalchemy\u redshift\dialogue.py in\u get\u column\u info(self,*args,**kwargs)
666 column\u info=super(RedshiftDialect,self)。\u获取\u column\u info(
667*args,
-->668**kw
669 )
670如果isinstance(列信息['type'],VARCHAR):
TypeError:\u get\u column\u info()获取了意外的ke
TypeError Traceback (most recent call last)
<ipython-input-98-366ec112cf52> in <module>
----> 1 Table=sa.Table("dim_dealer" ,metadata,autoload=True,autoload_with=engine)
<string> in __new__(cls, *args, **kw)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\util\deprecations.py in warned(fn, *args, **kwargs)
126 )
127
--> 128 return fn(*args, **kwargs)
129
130 doc = fn.__doc__ is not None and fn.__doc__ or ""
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\sql\schema.py in __new__(cls, *args, **kw)
494 except:
495 with util.safe_reraise():
--> 496 metadata._remove_table(name, schema)
497
498 @property
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\util\langhelpers.py in __exit__(self, type_, value, traceback)
66 self._exc_info = None # remove potential circular references
67 if not self.warn_only:
---> 68 compat.reraise(exc_type, exc_value, exc_tb)
69 else:
70 if not compat.py3k and self._exc_info and self._exc_info[1]:
~\AppData\Local\Continuum\anaconda3\lib\`enter code here`site-packages\sqlalchemy\util\compat.py in reraise(tp, value, tb, cause)
151 if value.__traceback__ is not tb:
152 raise value.with_traceback(tb)
--> 153 raise value
154
155 def u(s):
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\sql\schema.py in __new__(cls, *args, **kw)
489 metadata._add_table(name, schema, table)
490 try:
--> 491 table._init(name, metadata, *args, **kw)
492 table.dispatch.after_parent_attach(table, metadata)
493 return table
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\sql\schema.py in _init(self, name, metadata, *args, **kwargs)
583 include_columns,
584 _extend_on=_extend_on,
--> 585 resolve_fks=resolve_fks,
586 )
587
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\sql\schema.py in _autoload(self, metadata, autoload_with, include_columns, exclude_columns, resolve_fks, _extend_on)
607 exclude_columns,
608 resolve_fks,
--> 609 _extend_on=_extend_on,
610 )
611 else:
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\engine\base.py in run_callable(self, callable_, *args, **kwargs)
2148 """
2149 with self._contextual_connect() as conn:
-> 2150 return conn.run_callable(callable_, *args, **kwargs)
2151
2152 def execute(self, statement, *multiparams, **params):
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\engine\base.py in run_callable(self, callable_, *args, **kwargs)
1602
1603 """
-> 1604 return callable_(self, *args, **kwargs)
1605
1606 def _run_visitor(self, visitorcallable, element, **kwargs):
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\engine\default.py in reflecttable(self, connection, table, include_columns, exclude_columns, resolve_fks, **opts)
429 insp = reflection.Inspector.from_engine(connection)
430 return insp.reflecttable(
--> 431 table, include_columns, exclude_columns, resolve_fks, **opts
432 )
433
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\engine\reflection.py in reflecttable(self, table, include_columns, exclude_columns, resolve_fks, _extend_on)
638
639 for col_d in self.get_columns(
--> 640 table_name, schema, **table.dialect_kwargs
641 ):
642 found_table = True
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\engine\reflection.py in get_columns(self, table_name, schema, **kw)
371
372 col_defs = self.dialect.get_columns(
--> 373 self.bind, table_name, schema, info_cache=self.info_cache, **kw
374 )
375 for col_def in col_defs:
<string> in get_columns(self, connection, table_name, schema, **kw)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\engine\reflection.py in cache(fn, self, con, *args, **kw)
54 ret = info_cache.get(key)
55 if ret is None:
---> 56 ret = fn(self, con, *args, **kw)
57 info_cache[key] = ret
58 return ret
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy_redshift\dialect.py in get_columns(self, connection, table_name, schema, **kw)
459 default=col.default, notnull=col.notnull, domains=domains,
460 enums=[], schema=col.schema, encode=col.encode,
--> 461 comment=col.comment)
462 columns.append(column_info)
463 return columns
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy_redshift\dialect.py in _get_column_info(self, *args, **kwargs)
666 column_info = super(RedshiftDialect, self)._get_column_info(
667 *args,
--> 668 **kw
669 )
670 if isinstance(column_info['type'], VARCHAR):
TypeError: _get_column_info() got an unexpected keyword argument 'generated'
print(repr(metadata.tables[Table]))
if sa.__version__ >= '1.3.16':
# SQLAlchemy 1.3.16 introduced generated columns,
# not supported in redshift
kw['generated'] = ''