操作mysql,获取字段属性值,并输出表数据

import pymysql
import decimal
import datetime
import json
import LogPackage
import logging
import os

logs=LogPackage.Logger(filename='log.txt',path=1,driver_path=os.getcwd())
logs.Log()
logger=logging.getLogger(__name__)


__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()

        self.cursor1.execute('desc osc_order;')#获取字段属性默认值
        self.cursor2.execute("SELECT * FROM osc_order WHERE customer_id='47001930' and status_name in('订单已收已付') order by created_at DESC")

        db.close()

    def sql_test(self):
        self.run_sql()
        index=self.cursor1.fetchall()
        print(index)
        result=[]
        row={}
        for res in self.cursor2.fetchall():
            for i in range(len(index)):
                row[index[i][0]]=res[i]
            result.append(row)
        # print(result)
        for line in result:
            print(line)
        print(json.dumps(result,cls=DecimalEncoder,indent=4,ensure_ascii=False,sort_keys=True))#输出的是字符串
        # for data in self.cursor.fetchall():
        #     print(data)


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值