Pandas to_sql到sqlite返回’Engine’对象没有属性’cursor’
发布时间:2020-12-12 07:48:10 所属栏目:MsSql教程 来源:网络整理
导读:我在pandas中有一个working_df我想输出到sqlite数据库. from sqlalchemy import create_enginesql_engine = create_engine('sqlite:///test.db',echo=False)working_df.to_sql('data',sql_engine,index=False,if_exists='append') 返回:AttributeError:’En
我在pandas中有一个working_df我想输出到sqlite数据库.
from sqlalchemy import create_engine sql_engine = create_engine('sqlite:///test.db',echo=False) working_df.to_sql('data',sql_engine,index=False,if_exists='append') 返回:AttributeError:’Engine’对象没有属性’cursor’ 有什么想法吗? 熊猫版’0.18.1′ 编辑:添加完整跟踪 AttributeError Traceback (most recent call last) <ipython-input-41-4f64fc939721> in <module>() ----> 1 working_df.to_sql('data',engine,if_exists='append') /Users/tom/anaconda/envs/data_science/lib/python3.5/site-packages/pandas/core/generic.py in to_sql(self,name,con,flavor,schema,if_exists,index,index_label,chunksize,dtype) 1163 sql.to_sql(self,flavor=flavor,schema=schema,1164 if_exists=if_exists,index=index,index_label=index_label,-> 1165 chunksize=chunksize,dtype=dtype) 1166 1167 def to_pickle(self,path): /Users/tom/anaconda/envs/data_science/lib/python3.5/site-packages/pandas/io/sql.py in to_sql(frame,dtype) 569 pandas_sql.to_sql(frame,if_exists=if_exists,570 index_label=index_label,--> 571 chunksize=chunksize,dtype=dtype) 572 573 /Users/tom/anaconda/envs/data_science/lib/python3.5/site-packages/pandas/io/sql.py in to_sql(self,frame,dtype) 1659 if_exists=if_exists,1660 dtype=dtype) -> 1661 table.create() 1662 table.insert(chunksize) 1663 /Users/tom/anaconda/envs/data_science/lib/python3.5/site-packages/pandas/io/sql.py in create(self) 688 689 def create(self): --> 690 if self.exists(): 691 if self.if_exists == 'fail': 692 raise ValueError("Table '%s' already exists." % self.name) /Users/tom/anaconda/envs/data_science/lib/python3.5/site-packages/pandas/io/sql.py in exists(self) 676 677 def exists(self): --> 678 return self.pd_sql.has_table(self.name,self.schema) 679 680 def sql_schema(self): /Users/tom/anaconda/envs/data_science/lib/python3.5/site-packages/pandas/io/sql.py in has_table(self,schema) 1674 query = flavor_map.get(self.flavor) 1675 -> 1676 return len(self.execute(query,[name,]).fetchall()) > 0 1677 1678 def get_table(self,table_name,schema=None): /Users/tom/anaconda/envs/data_science/lib/python3.5/site-packages/pandas/io/sql.py in execute(self,*args,**kwargs) 1557 cur = self.con 1558 else: -> 1559 cur = self.con.cursor() 1560 try: 1561 if kwargs: AttributeError: 'Engine' object has no attribute 'cursor' 解决方法添加raw_connection()为我工作from sqlalchemy import create_engine sql_engine = create_engine('sqlite:///test.db',echo=False) connection = sql_engine.raw_connection() working_df.to_sql('data',connection,if_exists='append') 我的笔记本会话期间我有conda安装sqlalchemy,所以虽然它可以访问,因为我已经启动了pandas,看起来好像没有sqlalchemy.重新启动会话允许我删除raw_connection(). from sqlalchemy import create_engine sql_engine = create_engine('sqlite:///test.db',if_exists='append') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |