方法调用中参数“dml”没有值

Rea*_*nna 8 python sqlalchemy visual-studio-code

我正在尝试建立一个数据库,该数据库将根据 ID 号存储故事信息。现在我正在努力将所述信息放入表格中。我正在学习 python 和 sql,所以请耐心等待。

Pylint 告诉我,在参考 title.insert() 时存在以下错误,我无法根据文档弄清楚我在这里缺少什么:

方法调用中参数“dml”没有值

from ao3 import AO3
api = AO3()
work = api.work(id='1234')

from sqlalchemy import create_engine
engine = create_engine('sqlite:///ficrec.db', echo=True)

from sqlalchemy import Table, Column, Integer, String, MetaData
metadata = MetaData()

title = Table('title', metadata,
    Column('id', Integer, primary_key=True),
    Column('title', String(256))
)
author = Table('author', metadata,
    Column('id', Integer, primary_key=True),
    Column('author', String(128))
)
ins = title.insert().values(id=work.id, title=work.title)
Run Code Online (Sandbox Code Playgroud)

Gat*_*Lee 8

我遇到了同样的问题。基本上, insert() 需要一个参数是dml. 由于没有提供,pylint 会抱怨如下错误。

[pylint] No value for argument 'dml' in method call [E1120]
Run Code Online (Sandbox Code Playgroud)

不提供 dml 看起来不存在功能问题。基于对源代码的简要检查,dml由装饰器生成

@util.dependencies("sqlalchemy.sql.dml")
def insert(self, dml, values=None, inline=False, **kwargs):
    """Generate an :func:`.insert` construct against this
    :class:`.TableClause`.

    E.g.::

        table.insert().values(name='foo')

    See :func:`.insert` for argument and usage information.

    """

    return dml.Insert(self, values=values, inline=inline, **kwargs)
Run Code Online (Sandbox Code Playgroud)

为了继续前进,就我而言,我现在将 None 值传递给 insert() 。我不确定这是否是个好主意。希望 SQLAlchmey 社区处理这个问题。

对你来说,试试这种方式。

ins = title.insert(None).values(id=work.id, title=work.title)

  • 这可以让 pylint 安静下来,而且它似乎不会给我带来任何新的错误。仅供参考,sqlalchemy github 上有一个关于它的开放问题:https://github.com/sqlalchemy/sqlalchemy/issues/4656 (2认同)