操作mysql(获取列名与值)--不同服务器

__description__='Finding data in different servers'

import pymysql
import json
import decimal
import datetime

db1=pymysql.connect(host="服务器地址",port=3306,user='用户名',password='密码',db='数据库名称',charset='utf8')
db2=pymysql.connect(host='服务器地址',port=3306,user='用户名',password='密码',db='数据库名称',charset='utf8')
cursor1 = db1.cursor()
cursor2 = db2.cursor()

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

sql_2="select * from osc_order where customer_id='4700%' and status_name in('已收') order by created_at DESC "
cursor2.execute(sql_2)

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)

def sqltest():
    index1=cursor1.description #获取列名属性值(设计表)
    print(index1)
    result1=[]
    for res in cursor1.fetchall():
        row={}
        for i in range(len(index1)):
            row[index1[i][0]]=res[i]
        result1.append(row)
    print(json.dumps(result1,indent=4,ensure_ascii=False,sort_keys=True))
    # for i in result1:
    #     print(json.dumps(i,indent=4))

    print('\n')

    index2=cursor2.description
    print(index2)
    result2=[]
    for res in cursor2.fetchall():
        row={}
        for i in range(len(index2)):
            row[index2[i][0]]=res[i]
        result2.append(row)
    print(json.dumps(result2,cls=DecimalEncoder,indent=4,ensure_ascii=False,sort_keys=True))
    # for i in result2:
    #     print(json.dumps(i,cls=DecimalEncoder,indent=4,ensure_ascii=False,sort_keys=True))
    # for i in result2:
    #     for key in i:
    #         print(i[key])

if __name__=='__main__':
    sqltest()
    db1.close()
    db2.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值