Python查询mysql返回序列化数据

13 篇文章 1 订阅


一、前言

  1. pymysql 查询返回的数据是 tuple 格式的,取的时候只能用下标取,有点麻烦,下面提供一种牺牲了一些查询速度但是可以直接返回序列化数据的方法
  2. 当然 peewee 更好用,只是数据表更新后还需要更新 peewee 的模型
  3. MysqlOp 是根据 pymysql 封装的简单查询方法,代码在这里 https://blog.csdn.net/weixin_43721000/article/details/124803077

二、实现

from config import Config as cf
from utils.MysqlOp import MySqlOp


def search(table_name):
    msq = MySqlOp(host=cf.MYSQL_HOST, port=cf.MYSQL_PORT, username=cf.MYSQL_USER, password=cf.MYSQL_PWD, db=cf.MYSQL_DB)

    # 执行sql
    data_field_list = msq.select(f'''show full columns from `{table_name}`;''')
    data_field_list = [data_field[0] for data_field in data_field_list]

    data_list = msq.select(f'''select {', '.join([f'`{data_field}`' for data_field in data_field_list])} from `{table_name}`;''')

    formatList = []
    for idx, data in enumerate(data_list):

        item = {}
        for k, field in enumerate(data):
            item[data_field_list[k]] = field

        formatList.append(item)
    return formatList


if __name__ == '__main__':
    table_name = 'data'
    # 序列化返回 data 表的全部数据
    json_dict = search(table_name=table_name)
    print(json_dict)
    # {{'id': 100361, 'detail_page': 'https://manybo...

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什么都干的派森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值