zoukankan      html  css  js  c++  java
  • python 数据库查询,将查询的列名也保存下来,返回字典类型的数据

    前言:

    python + pymysql:通过pymysql,查询到符合要求的数据,不做类型转化的,返回的时元组类型的数据,可以根据下标,取想要的值。

    self.cursor.execute(sql)
    # 返回的是元组,可根据需要只查询对应的参数来取参使用 result = self.cursor.fetchall()

    后续使用,如果有些方法需要判断某个值,是否存在的时候,每条sql都不同,不能简单的通过下标来取值,如果可以根据当前数据的key来判断,有没有数据,就不用担心具体是哪一个下标了

    # 返回来的数据,通过下标,来指定取第几个值
    user_name = self.handel_username(str(user[0]), str(user[1]))

    解决方案,将查询出来的列名和数据,转化成字典类型,这样就可以根据key来取值

            try:
                self.connect_dbserver()
                self.cursor.execute(sql)
                res = self.cursor.fetchall()
                # 查出当前查询的列名,保存到coloums
                coloums = [column[0] for column in self.cursor.description]
                # 定义一个数组,用来保存每一组的数组,格式为字典形式{"name":"test","age":18}
                sub_resdata = []
                for row in res:
                    # 循环遍历查询出来的结果,然后生成字典
                    res_data = dict(zip(coloums, row))
                    sub_resdata.append(res_data)
            except Exception as e:
                mylog.exception("查询数据出错,请检查{0}".format(e))
            return sub_resdata

    最后,就可以根据具体的key来取值了

    res = DoMysql('').get_data_return_dict(sql)
    print(res[0]["moblie"])

    参考文章:https://www.cnblogs.com/xyao1/p/10694819.html

  • 相关阅读:
    服务器负载均衡的基本功能和实现原理
    几种负载均衡技术的实现
    Postman-CI集成Jenkins
    Postman-进阶
    Postman-简单使用
    chrome安装插件,安装Postman
    关于angularjs dom渲染结束再执行的问题
    Protractor(angular定制的e2e)的简易入门
    关于ng-router嵌套使用和总结
    scss使用后的简单入门总结
  • 原文地址:https://www.cnblogs.com/cuitang/p/14925624.html
Copyright © 2011-2022 走看看