具有特殊字符的,如python键中的句点

2024-06-28 15:50:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用类似于sqlalchemy的sqlinsert语句。在

def get_sql(self):
    """Returns SQL as String"""
    baz_ins = baz.insert().values(
        Id=self._id,
        Foo.Bar=self.foo_dot_bar,
    )
    return str(baz_ins.compile(dialect=mysql.dialect(),
                             compile_kwargs={"literal_binds": True}))

这将返回keyword cannot be expression。像\.这样转义句点也不起作用。在

我想出的一个解决方案是使用FooDOTBar instead of Foo.Bar,然后将生成的sql文件中的所有“点”替换为“.”,但这会破坏其他一些数据,并且不是最佳的。有什么更好的建议从头开始处理这个问题?在


Tags: selfsqlgetfoosqlalchemydefbarbaz
2条回答

在查询中,values可以是assigned with dictionary。所以你可以做一些类似的事情:

baz_ins = baz.insert().values({"Id": self._id, "Foo.Bar": self.foo_dot_bar})

查看insert文档了解更多选项

还有一种^{}的替代形式,您可以传入一个dict来代替:

baz.insert().values({
    "Id": self._id,
    "Foo.Bar": self.foo_dot_bar,
})

相关问题 更多 >