Python数据库查询与数据解析代码注释总结
学习笔记作者:admin日期:2025-08-01点击:8
摘要:该代码从数据库中查询表的所有数据,并将每一行转换为字典格式,对字符串类型的字段尝试进行JSON解析。
代码功能概述
这段代码的主要功能是从数据库中查询指定表的所有数据,并将结果转换为一个包含字典的列表。每个字典对应一行数据,键是列名,值是对应的字段值。
代码详细注释
# 执行 SQL 查询:从指定的表中查询所有数据(* 表示所有列)
cursor.execute(f"SELECT * FROM {table_name}")
# 获取表的列名(字段名),来自 cursor.description 的第一个元素
# cursor.description 是一个包含列信息的元组列表,description[0] 是列名
column_names = [description[0] for description in cursor.description]
# 获取所有的查询结果行
rows = cursor.fetchall()
# 打印当前处理的表名和该表中的记录数量
print(table_name, len(rows))
# 初始化一个空列表,用于存储解析后的数据
parsed_rows = []
# 遍历每一行数据
for row in rows:
# 创建一个空字典,用于保存当前行的字段名和值的映射
parsed_row = {}
# 使用 enumerate 获取每个字段的索引 i 和对应的值 value
for i, value in enumerate(row):
# 根据列名列表获取当前列的列名
key = column_names[i]
# 判断当前值是否为字符串类型
if isinstance(value, str):
try:
# 如果是字符串,尝试用 json.loads 解析为 JSON 对象(例如字符串 '{"a":1}' 转成字典)
parsed_row[key] = json.loads(value)
except:
# 如果解析失败(比如不是合法的 JSON 字符串),就保留原始字符串值
parsed_row[key] = value
else:
# 如果值不是字符串类型(如整数、布尔值等),直接赋值
parsed_row[key] = value
# 将解析好的这一行数据加入最终的结果列表中
parsed_rows.append(parsed_row)
代码功能总结
这段代码的作用是从数据库中取出一张表的所有数据,并将每一行转换成一个字典(key
是列名,value
是对应值),然后把这些字典组成一个列表 parsed_rows
。此外,它还对可能以 JSON 格式存储在数据库中的字符串进行了解析。