使用PyMySQL的python3.6中SQLAlchemy反射失败

2024-06-26 10:31:42 发布

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

你好吗

我尝试在SQLAlchemy中使用python3.6。我可以连接到数据库,但所有反射尝试都失败:

Traceback (most recent call last):
  File "/Users/jw1050/Python/projects/label_automation/generate.py", line 14, in <module>
    metadata.reflect(engine, only=['parcel', 'order', 'address', 'document'])
  File "/Users/jw1050/.virtualenvs/psd_label_automatiion/lib/python3.6/site-packages/sqlalchemy/sql/schema.py", line 3874, in reflect
    bind.engine.table_names(schema, connection=conn))
  File "/Users/jw1050/.virtualenvs/psd_label_automatiion/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2128, in table_names
    return self.dialect.get_table_names(conn, schema)
  File "<string>", line 2, in get_table_names
  File "/Users/jw1050/.virtualenvs/psd_label_automatiion/lib/python3.6/site-packages/sqlalchemy/engine/reflection.py", line 42, in cache
    return fn(self, con, *args, **kw)
  File "/Users/jw1050/.virtualenvs/psd_label_automatiion/lib/python3.6/site-packages/sqlalchemy/dialects/mysql/base.py", line 1756, in get_table_names
    self.identifier_preparer.quote_identifier(current_schema))
  File "/Users/jw1050/.virtualenvs/psd_label_automatiion/lib/python3.6/site-packages/sqlalchemy/sql/compiler.py", line 2888, in quote_identifier
    self._escape_identifier(value) + \
  File "/Users/jw1050/.virtualenvs/psd_label_automatiion/lib/python3.6/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 78, in _escape_identifier
    value = value.replace(self.escape_quote, self.escape_to_quote)
TypeError: a bytes-like object is required, not 'str'

我的连接信息如下:

^{pr2}$

在python2中一切正常,但我不想在这里使用python2。有没有其他人遇到过这个问题并能解决?在


Tags: inpyselfsqlalchemylibpackageslinesite
1条回答
网友
1楼 · 发布于 2024-06-26 10:31:42

我已经想好了。在

这是因为我的连接字符串中使用了\u unicode=0。在

根据SQLAlchemy Docs这个设置不应该在Python3中使用。在python2中,它提供了优异的性能,但在python3中却没有

希望这对某人有帮助

相关问题 更多 >