Python 列必须使用非空名称构造

Python 列必须使用非空名称构造,python,sqlalchemy,Python,Sqlalchemy,我有以下代码: import dbabslayer from sqlalchemy import * from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Table, Column, Integer, String, MetaData dbObj = dbabslayer.DbAbsLayer(); meta = MetaData() base = declarative_base()

我有以下代码:

import dbabslayer
from sqlalchemy import *
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Table, Column, Integer, String, MetaData

dbObj = dbabslayer.DbAbsLayer();

meta = MetaData()
base = declarative_base()

class TrEnAhmadaliTable(declarative_base()):
        __tablename__ = 'tr_en_ahmadali';       
        id = Column(Integer,primary_key = True,autoincrement = True)
        sura = Column(Integer)
        aya = Column(Integer)
        aya_text = Column(Unicode(convert_unicode=False))

tr_en_aliahmadi = Table('tr_en_ahmadali',base.metadata,
       Column(Integer,primary_key = True,autoincrement = False, nullable=False),
       Column('sura', Integer, nullable=False),
       Column('aya', Integer, nullable=False),
       Column('aya_text', UnicodeText(convert_unicode=False), nullable=False)
)
但我得到了以下错误:

MetaData(bind=None)
Traceback (most recent call last):
  File "./haq.py", line 10, in <module>
    from fetchrecordintomemory import *
  File "/home/mohsen/codes/haq/fetchrecordintomemory.py", line 5, in <module>
    import tables
  File "/home/mohsen/codes/haq/tables.py", line 119, in <module>
    Column('aya_text', UnicodeText(convert_unicode=False), nullable=False)
  File "/usr/lib/python3/dist-packages/sqlalchemy/sql/schema.py", line 469, in __new__
    metadata._remove_table(name, schema)
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 67, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 277, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/sqlalchemy/sql/schema.py", line 464, in __new__
    table._init(name, metadata, *args, **kw)
  File "/usr/lib/python3/dist-packages/sqlalchemy/sql/schema.py", line 557, in _init
    self._init_items(*args)
  File "/usr/lib/python3/dist-packages/sqlalchemy/sql/schema.py", line 105, in _init_items
    item._set_parent_with_dispatch(self)
  File "/usr/lib/python3/dist-packages/sqlalchemy/sql/base.py", line 442, in _set_parent_with_dispatch
    self._set_parent(parent)
  File "/usr/lib/python3/dist-packages/sqlalchemy/sql/schema.py", line 1407, in _set_parent
    "Column must be constructed with a non-blank name or "
sqlalchemy.exc.ArgumentError: Column must be constructed with a non-blank name or assign a non-blank .name before adding to a Table.
元数据(bind=None)
回溯(最近一次呼叫最后一次):
文件“/haq.py”,第10行,在
从FetchRecordInMemory导入*
文件“/home/mohsen/codes/haq/fetchrecordintomemory.py”,第5行,在
导入表
文件“/home/mohsen/codes/haq/tables.py”,第119行,在
列('aya_text',UnicodeText(convert_unicode=False),nullable=False)
文件“/usr/lib/python3/dist packages/sqlalchemy/sql/schema.py”,第469行,在新的__
元数据。删除表(名称、架构)
文件“/usr/lib/python3/dist packages/sqlalchemy/util/langhelpers.py”,第67行,在退出时__
兼容性(exc_类型、exc_值、exc_tb)
文件“/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py”,第277行,重新登录
增值
文件“/usr/lib/python3/dist packages/sqlalchemy/sql/schema.py”,第464行,在新的__
表._init(名称、元数据、*args、**kw)
文件“/usr/lib/python3/dist packages/sqlalchemy/sql/schema.py”,第557行,在_init中
自初始化项(*args)
文件“/usr/lib/python3/dist packages/sqlalchemy/sql/schema.py”,第105行,在_init_项中
项目.\u设置\u父项\u与\u分派(自)
文件“/usr/lib/python3/dist packages/sqlalchemy/sql/base.py”,第442行,在带有调度的集合父集合中
自我设置父项(父项)
文件“/usr/lib/python3/dist packages/sqlalchemy/sql/schema.py”,第1407行,在父集合中
“列必须使用非空名称或”
sqlalchemy.exc.ArgumentError:在添加到表之前,必须使用非空名称构造列或指定非空.name。

如何解决此问题?

您的问题似乎与
列有关(Integer,primary\u key=True,autoincrement=False,nullable=False)
查看位于的文档。-列的第一个参数应该是列“name”,然后是列“type”


第一个参数的名称应该类似于“aya_id”。

Column(Integer,primary_key=True,autoincrement=False,nullable=False)
-Column的第一个参数应该是“name”,后跟“type”。也许这就是问题所在?第一个参数应该类似于“aya_id”。谢谢,你可以把它作为答案@在我的例子中,
sqlacodegen
自动生成了这个不正确的代码=/