sqlite3 查询列名

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

备注一下省的忘了
大致有三种方法
假设现在有一个数据库test0,库里有一个表t1,表里有一个列f1

cursor.execute("PRAGMA table_info(t1)")
name = cursor.fetchall()
print name
# [(0, u'f1', u'integer', 0, None, 0)]
cursor.execute("SELECT sql FROM sqlite_master WHERE tbl_name = 't1' and type = 'table'")
name = cursor.fetchall()
print name
# [(u'CREATE TABLE t1(f1 integer)',)]
cursor.execute("SELECT * FROM t1")
col_name_list = [tuple[0] for tuple in cursor.description]
print col_name_list
# ['f1']

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 将Pandas DataFrame 数据插入 SQLite 并使用列名作为表的列名 要将 Pandas 的 `DataFrame` 插入到 SQLite 数据库中,并确保数据库中的表结构与 `DataFrame` 列名一致,可以利用 `to_sql()` 方法完成此操作。以下是实现该功能的具体方法: #### 使用 `to_sql()` 方法 Pandas 提供了一个便捷的方法 `to_sql()` 来将 `DataFrame` 中的数据写入 SQL 表格。通过设置参数 `if_exists='replace'` 或 `if_exists='append'` 可以控制当目标表格已存在时的行为。 - 如果希望创建新表,则可以选择默认行为或将 `if_exists` 设置为 `'fail'`。 - 若需覆盖现有表,则应指定 `if_exists='replace'`。 - 若要向已有表追加记录而不删除原有数据,则可设为 `if_exists='append'`[^1]。 #### 配置 SQLAlchemy Engine 连接 SQLite 为了连接至 SQLite 数据库,在调用 `to_sql()` 函数前需要先建立一个 SQLAlchemy engine 对象来表示这个链接。下面展示如何配置它以及执行实际的数据传输过程: ```python import sqlite3 from sqlalchemy import create_engine import pandas as pd # 创建内存中的SQLite数据库实例或者指定路径保存文件形式 conn = sqlite3.connect(":memory:") engine = create_engine('sqlite://', creator=lambda: conn) df = pd.DataFrame({ 'ColumnA': ['Value A'], 'ColumnB': ['Value B'] }) # 将DataFrame写入SQLite数据库名为mytable的表里 df.to_sql(name='mytable', con=engine, index=False, if_exists='replace') result_set = engine.execute("SELECT * FROM mytable").fetchall() print(result_set) ``` 上面这段脚本展示了完整的流程:从定义 DataFrame 开始直到最终查询确认数据已被成功存储于 SQLite 数据库里[^1]。 注意这里设置了 `index=False` 参数防止自动增加额外索引列为 part of the resulting SQL table structure. #### 处理重复索引问题 对于提到关于附加 CSV 文件过程中产生的多余索引列的问题,可以通过调整读取CSV的方式解决这个问题。具体来说就是当你加载新的 csv 文件转换成 dataframe 后再做 append 动作之前应该重置其索引属性: ```python new_df.reset_index(drop=True, inplace=True) existing_df.append(new_df, ignore_index=True) ``` 这样就可以有效避免因为多次叠加造成的混乱局面发生 [^2]. 综上所述,以上介绍的就是怎样借助 Python 库-Pandas 实现高效地把 DataFrames 转储进入 SQLite 数据库之中同时保持原始框架内的字段命名不变的最佳实践方案之一.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值