警示情况:
UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy.
目前使用的连接方式:
conn = pymysql.connect(
host='127.0.0.1',
user='root',
passwd='xxxx',
db='house_term',
port=3306,
charset='utf8'
)
data = pd.read_sql("select * from warehouse_housing", conn)
避免警告提示推荐使用SQLAlchemy
需要先安装SQLAlchemy库: pip install sqlalchemy
新连接使用方式:
from sqlalchemy import create_engine, text
host = '127.0.0.1'
user = 'root'
passwd = 'x x x'
db = 'house_term'
port = 3306
engine = create_engine('mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8'
% (user, passwd, host, port, db))
data = pd.read_sql(text("select * from warehouse_housing"), engine.connect())
sql语句需要使用text()包裹使用,如果没有包裹则会报错:
raise exc.ObjectNotExecutableError(statement) from err
sqlalchemy.exc.ObjectNotExecutableError: Not an executable object: 'select * from warehouse_housing'
engine需要使用connect()否则会出现如下报错:
原因:pd.read_sql方法传递“连接”变量而不是“引擎”
return self.connectable.execution_options().execute(*args, **kwargs)
AttributeError: 'Engine' object has no attribute 'execution_options'
原因:pd.read_sql方法传递“连接”变量而不是“引擎”
详细讲解一下create_engine的使用方法:
engine = create_engine('dialect+driver://username:password@host:port/database')
dialect -- 数据库类型 driver -- 数据库驱动选择
username -- 数据库用户名 password -- 用户密码文章来源:https://www.toymoban.com/news/detail-496713.html
host--服务器地址 port--端口 database--数据库文章来源地址https://www.toymoban.com/news/detail-496713.html
另外附上隐藏警告的使用方法:
import warnings
warnings.filterwarnings('ignore')
到了这里,关于Pandas数据库查询更新create_engine用法,以及一些警告及弃用处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!