概述
python使用sqlite3读写数据库
- 1、
1、
# -*- coding : UTF-8 -*-
# @file
: sql_test1.py
# @Time
: 2021-12-09 17:36
# @Author : wmz
import sqlite3
if __name__ == '__main__':
conn = sqlite3.connect("xxxx.db")
cursor = conn.cursor()
sql = """select name from sqlite_master where type='table' order by name"""
cursor.execute(sql)
tab_name = cursor.fetchall()
print("table_name: n", tab_name)
print(type(tab_name))
tab_name = [line[0] for line in tab_name]
# 获取表的列名(字段名),保存在col_names列表,每个表的字段名集为一个元组
col_names = []
for line in tab_name:
cursor.execute('pragma table_info({})'.format(line))
col_name = cursor.fetchall()
col_name = [x[1] for x in col_name]
col_names.append(col_name)
col_name = tuple(col_name)
print("col_names: n", col_names)
cursor.execute("PRAGMA table_info(xxx)")
# 引号中的括号中是表名
title_name = cursor.fetchall()
print("title_name: n", title_name)
# 之所以保存为元组,一是可避免误操作修改字段名,二是元组巧用转化字符串,可
# 直接用于SQL的insert语句中。例如下面代码可得到第一个表的带括号字段名集合:
'''
sql_col_name=str(col_names[0]).replace(''','')
'''
cursor.execute('select * from ' + tab_name[0])
cdset = cursor.fetchall()
cdset = [list(line) for line in cdset]
# 将结果集的元组转为列表,才能修改
for line in cdset:
for x in range(len(line)):
# 注:作为For循环计数变量不能在循环体中修改,此处不能用x in line代替
if type(line[x]) == bytes:
img_bytes = line[x]
conn.close()
参考:sqlite3 — DB-API 2.0 interface for SQLite databases
最后
以上就是安详玫瑰为你收集整理的python使用sqlite3读写数据库1、的全部内容,希望文章能够帮你解决python使用sqlite3读写数据库1、所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复