操作mysql(获取列名与值)--同一个数据库

import pymysql
import decimal
import datetime
import json

__description__='Finding the data in the same database'

class DecimalEncoder(json.JSONEncoder):
    def default(self,obj):
        if isinstance(obj,decimal.Decimal):#decimal类型转换,使其可以转换为json格式数据
            return float(obj)
        elif isinstance(obj,datetime.datetime):#datetime类型转换,使其可以转换为json格式数据
            return obj.__str__()
        return super(DecimalEncoder,self).default(obj)

class RUNSQL(object):
    def run_sql(self):
        db=pymysql.connect(host="服务器地址",port=3306,user='用户名',password='密码',db='数据库名称',charset='utf8')
        self.cursor1 = db.cursor()
        self.cursor2 = db.cursor()

        sql_1 = "SELECT * FROM member WHERE phone LIKE '183%'"
        self.cursor1.execute(sql_1)

        sql_2="SELECT * FROM member_vipcard_base WHERE card_sys_id LIKE '183%'"
        self.cursor2.execute(sql_2)

        db.close()

    def sql_test(self):
        self.run_sql()
        for cur in (self.cursor1,self.cursor2):
            index=cur.description
            print(index)
            result=[]
            for res in cur.fetchall():
                row={}
                for i in range(len(index)):
                    row[index[i][0]]=res[i]
                result.append(row)
            print(json.dumps(result,cls=DecimalEncoder,indent=4,ensure_ascii=False,sort_keys=True))

if __name__=='__main__':
    s=RUNSQL()
    s.sql_test()

猜你喜欢

转载自blog.csdn.net/lssrain/article/details/80449260