SQLAlchemy 来查询并统计 MySQL 中 JSON 字段的一个值
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, select
# 假设您已经有了数据库连接字符串和表名
DATABASE_URI = 'mysql+pymysql://user:password@host:port/database'
TABLE_NAME = 'your_table'
# 创建数据库引擎
engine = create_engine(DATABASE_URI)
metadata = MetaData()
# 反射表结构
metadata.reflect(bind=engine, only=TABLE_NAME)
table = metadata.tables[TABLE_NAME]
# 构造查询,统计 JSON 字段中某个键的出现次数
# 假设 JSON 字段名为 'data', 要统计的键为 'key_to_count'
stmt = select([table.c.data.op('->>')('key_to_count').label('count')]).select_from(
table
).execute()
# 输出结果
for row in stmt:
print(row.count)
请确保您已经安装了 SQLAlchemy
和适合您数据库类型的数据库驱动,例如 mysql-connector-python
或 pymysql
。以上代码假定您的 JSON 数据以字符串形式存储,并且您正在使用 ->>
运算符来获取 JSON 字段中的值。您需要根据实际情况调整表名、字段名和查询条件。
评论已关闭