python - SQLalchemy-如何从 sqlite 文件中提取表?
问题描述
我想从 sqlite 文件中提取表信息。我可以在此页面
之后列出所有表名,并尝试使用会话实例上的查询方法提取表信息。但我得到了以下错误。
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: ComponentSizes [SQL: 'SELECT ComponentSizes']
有谁知道我应该如何修改以下代码以提取指定表名的表?
class read():
def __init__(self,path):
engine = create_engine("sqlite:///" + sqlFile)
inspector=inspect(engine)
for table_name in inspector.get_table_names():
for column in inspector.get_columns(table_name):
#print("Column: %s" % column['name'])
print (table_name+" : "+column['name'])
Session = sessionmaker(bind=engine)
self.session = Session()
def getTable(self,name):
table=self.session.query(name).all()
return table
if __name__ == '__main__':
test=read(sqlFile)
test.getTable('ComponentSizes')
解决方案
你得到的错误暗示出了什么问题。您的代码正在翻译成 SQL -SELECT ComponentSizes
这是不完整的。目前尚不清楚您的最终目标是什么。如果要将表格的内容提取到 CSV 中,可以这样做:
import sqlite3
import csv
con = sqlite3.connect('mydatabase.db')
outfile = open('mydump.csv', 'wb')
outcsv = csv.writer(outfile)
cursor = con.execute('select * from ComponentSizes')
# dump column titles (optional)
outcsv.writerow(x[0] for x in cursor.description)
# dump rows
outcsv.writerows(cursor.fetchall())
outfile.close()
否则,如果您希望将表的内容放入 pandas df 进行进一步分析,您可以选择这样做:
import sqlite3
import pandas as pd
# Create your connection.
cnx = sqlite3.connect('file.db')
df = pd.read_sql_query("SELECT * FROM ComponentSizes", cnx)
希望能帮助到你。快乐编码!
推荐阅读
- python - 在 TensorFlow 中修改隐藏层后如何恢复预测(测试)?
- python - async def on_message(消息,ctx)
- python-3.x - 无法将 emacs 配置为使用 python3
- keycloak - Keycloak 重置密码表单预填用户名
- python - Pyinstaller 不会将 pkg 导入 exe 文件/无法执行脚本
- python - Python self.after() 改变运行顺序
- linux - conda.exe:加载共享库时出错:libz.so.1:无法从共享对象映射段
- php - 如何在我的视图中访问 Altorouter 实例
- java - 为什么 maven 不能将我的依赖项添加到 jar 中?
- matlab - 获取 Matlab 脚本中代码段的名称