def addr_targs(key): """省份城市标签""" bizcnf = get_cnf_val(key,sconf.BIZ) #取业务配置 if not bizcnf: return sconf.err_handle.biznum_not_config ttl = bizcnf.get('ttl',600) #取数据库配置 dbinfo = get_host_by_data(bizcnf['source']) if not dbinfo: return sconf.err_handle.db_not_config dbinfo['dbname']=bizcnf['source'].split('.')[-1] prefix = bizcnf['prefix'] rkey = "biz:targ.%s.%s"%(bizcnf['table'],prefix) db = dbclass(dbinfo) res,desc = db.connect() if res == -1: return sconf.err_handle.db_err sql_item={} sql_item['table'] = bizcnf['table'] sql_item['fields'] = bizcnf['fields'] sql_item['order'] = "sortid asc" sql_item['where'] = " sortid >%s000 and sortid <%s999" % (prefix,prefix) res,desc1 = db.query(sql_item) sql_item['where'] = " sortid >%s000000 and sortid <%s999999" % (prefix,prefix) res,desc2 = db.query(sql_item) sql_item['where'] = " sortid >%s000000000 and sortid <%s999999999" % (prefix,prefix) res,desc3 = db.query(sql_item) if res == -1: return sconf.err_handle.db_err if desc: obj = {} for row in desc: tid = str(row['sortid']) if len(tid) ==3: obj[row['sortid']]={"info":row} elif len(tid) ==6: pid = int(tid[:3]) if 'extn' not in obj[pid]: obj[pid]['extn']={} obj[pid]['extn'][row['sortid']]={"info":row} elif len(tid)==9: ppid = int(tid[:3]) pid = int(tid[:6]) if 'extn' not in obj[ppid]['extn'][pid]: obj[ppid]['extn'][pid]['extn']={} obj[ppid]['extn'][pid]['extn'][row['sortid']]={"info":row} #try: #rdb.set(rkey,gzip.compress(json.dumps(res).encode())) cls_base.cache_set(rkey,json.dumps(obj),ttl) #except: # pass return 0,obj