我已经读取了其他用户的表。我如何将它们读入pandas dataframe或使用Python工具下载为*.csv?
*.csv
zwghvu4y1#
在sqlalchemy中,表模式由MetaData对象管理。要从现有数据库加载模式,可以使用MetaData.reflect()方法,该方法可以接受一个可选参数schema,该参数用于从其他用户加载模式。https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.reflect要将其作为pandas DataFrame加载,可以使用read_sql_query()方法。https://pandas.pydata.org/docs/reference/api/pandas.read_sql_query.html
sqlalchemy
MetaData
MetaData.reflect()
schema
DataFrame
read_sql_query()
import pandas as pd import sqlalchemy as sa engine = sa.create_engine("oracle+cx_oracle://user:pwd@host:port/dbname") meta = sa.Metadata() meta.reflect(bind=engine, schema="otheruser") table = sa.Table("otheruser.table", meta, autoload_with=engine) df = pd.read_sql_query(table.select(), engine) df.to_csv("file.csv")
pjngdqdw2#
您需要安装cx_oracle和SQLAlchemy。
import cx_Oracle import sqlalchemy as sa import pandas as pd engine = sa.create_engine ('oracle+cx_oracle://user:pwd@host:port/dbname') connection = engine.connect() df = pd.read_sql("select * from otheruser.table", connection) df.head() df.to_csv("file.csv")
2条答案
按热度按时间zwghvu4y1#
在
sqlalchemy
中,表模式由MetaData
对象管理。要从现有数据库加载模式,可以使用MetaData.reflect()
方法,该方法可以接受一个可选参数schema
,该参数用于从其他用户加载模式。https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.reflect要将其作为pandas
DataFrame
加载,可以使用read_sql_query()
方法。https://pandas.pydata.org/docs/reference/api/pandas.read_sql_query.htmlpjngdqdw2#
您需要安装cx_oracle和SQLAlchemy。