python-查詢資料庫-匹配資料
阿新 • • 發佈:2020-12-30
技術標籤:pythondatapythonmysqlsql資料庫
#!/usr/bin/env python # -*- coding: utf-8 -*- import re import argparse import os import commands import hashlib import subprocess import sys import shutil import MySQLdb import MySQLdb.cursors reload(sys) sys.setdefaultencoding( "utf-8" ) class Log: @staticmethod def e(msg): print(Log.red + '[x]:' + msg + Log.end) @staticmethod def w(msg): print(Log.yellow + '[!]:' + msg + Log.end) @staticmethod def i(msg): print(Log.green + '[+]:' + msg + Log.end) @staticmethod def t(msg): print(Log.blue + '[-]:' + msg + Log.end) red = '\033[1;31m' green = '\033[1;32m' yellow = '\033[1;33m' blue = '\033[1;34m' end = '\033[00m' class get_database_info(object): def connectdb(self): Log.w("start to connect database") #本地連線 db = MySQLdb.connect(host='ip地址', port=埠號, user='使用者', passwd='密碼', db='資料庫名稱', charset='latin1') Log.e("connect success") return db def select_table(self,table,db): cursor = db.cursor() sql='SELECT id,name1,name2 FROM '+table cursor.execute(sql) #列印資料 Log.w("select database, results list:") results = cursor.fetchall() name1_info=dict() name2_info=dict() if results: for rec in results: print rec[0],rec[1],rec[2] name1_info.update({rec[1]:rec[0]}) name2_info.update({rec[1]:rec[2]}) Log.w("Get name1_info ALIAS:") for key,values in name1_info.items(): print str(key)+"="+str(values) Log.w("Get name2_info ALIAS:") for key,values in name2_info.items(): print str(key)+"="+str(values) cursor.close() return name1_info,name2_info def invokedb(self): #連線資料庫 db = self.connectdb() product_table="表名" info=self.select_table(product_table,db) #關閉資料庫 db.close() return info #匹配查詢到的具體值 def match(self,info,manufacturer): marketcode=info[manufacturer] Log.w("get info of "+manufacturer+":") print manufacturer+"="+str(marketcode) return marketcode def parserParameter(): parser = argparse.ArgumentParser(description='test!') required = parser.add_argument_group('required arguments') parser.add_argument('--code', required=True, help='code') args = parser.parse_args() return args if __name__ == '__main__': ### 解析引數 args=parserParameter() code=args.code #初始化類 get_database_info = get_database_info() name1_info,name2_info=get_database_info.invokedb() print name1_info,name2_info #匹配具體值 name1=get_database_info.match(name1_info,code) name1=str(name1) Log.i("vendor="+vendor+" \nname1:"+name1) name2=get_database_info.match(name2_info,code) name2=str(name2) Log.i("vendor="+vendor+" \nname2:"+name2)