meta = MetaData(self.connectable, schema=schema) TypeError: __init__() got multiple values for argument 'schema' python-BaseException分析一下
时间: 2024-05-31 10:12:54 浏览: 457
这个错误发生在创建 SQLAlchemy 的 `MetaData` 对象时,原因是 `__init__()` 方法同时接收了 `self.connectable` 和 `schema` 这两个参数,但是 `schema` 参数已经在函数调用时传递过去了,因此会报错。
解决方法是检查 `MetaData` 对象的初始化参数,确保只传递一个值给 `schema` 参数。也可以检查 `self.connectable` 的值是否正确传递给了 `MetaData` 对象。
相关问题
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[2], line 6 4 engine = create_engine('sqlite:///data/chinook.db') 5 # 加载其中的 tracks 数据表的数据 ----> 6 tracks = pd.read_sql_table('tracks', engine) 7 # 查看前 5 个数据 8 tracks.head() File D:\anaconda3\envs\test02\lib\site-packages\pandas\io\sql.py:318, in read_sql_table(table_name, con, schema, index_col, coerce_float, parse_dates, columns, chunksize) 315 import sqlalchemy 316 from sqlalchemy.schema import MetaData --> 318 meta = MetaData(con, schema=schema) 319 try: 320 meta.reflect(only=[table_name], views=True) TypeError: __init__() got multiple values for argument 'schema'
printf("3. 修改学生资料\n");
printf("4. 显示学生资料\n");
printf("0.这个错误是因为在创建 `MetaData` 对象时,`schema` 参数被重复传递了多次。你 退出\n");
printf("-----------------\n");
printf("请输入选项:");
scanf("%d", &choice);
switch可以检查一下你的代码,确认在调用 `pd.read_sql_table` 函数时是否重复传递了 `schema (choice) {
case 1:
addStudent();
break;
case 2:
searchStudent();
break;
` 参数。如果是的话,可以考虑删除多余的参数值,或者使用正确的参数名。另外, case 3:
modifyStudent();
break;
case 4:
displayStudents();
break;
case 0也可以查看一下 `create_engine` 函数中是否正确地指定了数据库的连接信息。
阅读全文