首页 > 其他分享 >api接口

api接口

时间:2024-06-12 17:55:20浏览次数:16  
标签:12 return nn 机构 接口 查询 api values

import tornado.httpserver
import tornado.ioloop
import tornado.web
from tornado.options import define
from tornado.options import options
import json
import numpy as np
class BaseHandler(tornado.web.RequestHandler):
def post(self, *args, **kwargs):
idcard = self.get_argument('idcard', '未传入身份证', True)
point = self.get_argument('point', '未传入逾期探针', True)
xinyan = self.get_argument('xinyan', '未传入新颜数据', True)
br = self.get_argument('br', '未传入百融数据', True)
#这里写你自己的跑分逻辑
import pandas as pd
def get_data_from_json(json_obj, key='max_performance_amt'):
if isinstance(json_obj, dict):
for k, v in json_obj.items():
if k == key:
return v
elif isinstance(v, (dict, list)):
result = get_data_from_json(v, key)
if result is not None:
return result
elif isinstance(json_obj, list):
for item in json_obj:
result = get_data_from_json(item, key)
if result is not None:
return result
return None
sj = pd.DataFrame({
'idcard': [idcard],
'point': [point],
'xinyan': [xinyan],
'br': [br]})
sj['消金贷款类机构最大授信额度'] = sj['xinyan'].apply(lambda x: get_data_from_json(json.loads(x),key="C22180009")
if isinstance(x, str) and x else None)
sj['近1个月履约贷款总金额'] = sj['xinyan'].apply(lambda x: get_data_from_json(json.loads(x),key="B22170040")
if isinstance(x, str) and x else None)
sj['近3个月履约贷款总金额'] = sj['xinyan'].apply(lambda x: get_data_from_json(json.loads(x),key="B22170041")
if isinstance(x, str) and x else None)
sj['最大逾期金额'] = sj['point'].apply(lambda x: get_data_from_json(json.loads(x),key="max_overdue_amt")
if isinstance(x, str) and x else None)
sj['按身份证号查询,近12个月在银行机构-网络零售银行申请次数'] = sj['br'].apply(lambda x: get_data_from_json(json.loads(x),key="als_m12_id_bank_ret_allnum")
if isinstance(x, str) and x else None)
sj['按手机号查询,近6个月在银行机构申请次数'] = sj['br'].apply(lambda x: get_data_from_json(json.loads(x),key="als_m6_cell_bank_allnum")
if isinstance(x, str) and x else None)
sj['按手机号查询,近12个月在银行机构申请机构数'] = sj['br'].apply(lambda x: get_data_from_json(json.loads(x),key="als_m12_cell_bank_orgnum")
if isinstance(x, str) and x else None)
sj['按身份证号查询,近12个月在银行机构申请机构数'] = sj['br'].apply(lambda x: get_data_from_json(json.loads(x),key="als_m12_id_bank_orgnum")
if isinstance(x, str) and x else None)
nn=sj.copy()
for i in ['消金贷款类机构最大授信额度', '按身份证号查询,近12个月在银行机构-网络零售银行申请次数',
'按手机号查询,近6个月在银行机构申请次数','按手机号查询,近12个月在银行机构申请机构数','按身份证号查询,近12个月在银行机构申请机构数']:
nn[i]=nn[i].apply(lambda x:np.nan if x"" else np.nan if x"其他" else np.nan if x"np.nan" else x)
nn[i]=nn[i].astype('float')
def qj(x):
values=[0,10000,20000,50000,np.inf]
index=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T']
for i in range(len(values)-1):
if values[i]<=x<values[i+1]:
return '{0}[{1},{2})'.format(index[i],values[i],values[i+1])
return '空值'
nn['消金贷款类机构最大授信额度']=nn['消金贷款类机构最大授信额度'].astype('float')
nn['消金贷款类机构最大授信额度']=nn['消金贷款类机构最大授信额度'].apply(qj)
def qj(x):
values=[1,2,7,15,17,np.inf]
index=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T']
for i in range(len(values)-1):
if values[i]<=x<values[i+1]:
return '{0}
[{1},{2})'.format(index[i],values[i],values[i+1])
return '空值'
nn['按身份证号查询,近12个月在银行机构-网络零售银行申请次数']=nn['按身份证号查询,近12个月在银行机构-网络零售银行申请次数'].astype('float')
nn['按身份证号查询,近12个月在银行机构-网络零售银行申请次数']=nn['按身份证号查询,近12个月在银行机构-网络零售银行申请次数'].apply(qj)
def qj(x):
values=[0,3,5,9,24,26,np.inf]
index=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T']
for i in range(len(values)-1):
if values[i]<=x<values[i+1]:
return '{0}[{1},{2})'.format(index[i],values[i],values[i+1])
return '空值'
nn['按手机号查询,近6个月在银行机构申请次数']=nn['按手机号查询,近6个月在银行机构申请次数'].astype('float')
nn['按手机号查询,近6个月在银行机构申请次数']=nn['按手机号查询,近6个月在银行机构申请次数'].apply(qj)
def qj(x):
values=[0,5,7,10,18,24,np.inf]
index=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T']
for i in range(len(values)-1):
if values[i]<=x<values[i+1]:
return '{0}
[{1},{2})'.format(index[i],values[i],values[i+1])
return '空值'
nn['按身份证号查询,近12个月在银行机构申请机构数']=nn['按身份证号查询,近12个月在银行机构申请机构数'].astype('float')
nn['按身份证号查询,近12个月在银行机构申请机构数']=nn['按身份证号查询,近12个月在银行机构申请机构数'].apply(qj)
def qj(x):
values=[0,4,5,17,21,23,np.inf]
index=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T']
for i in range(len(values)-1):
if values[i]<=x<values[i+1]:
return '{0}_[{1},{2})'.format(index[i],values[i],values[i+1])
return '空值'
nn['按手机号查询,近12个月在银行机构申请机构数']=nn['按手机号查询,近12个月在银行机构申请机构数'].astype('float')
nn['按手机号查询,近12个月在银行机构申请机构数']=nn['按手机号查询,近12个月在银行机构申请机构数'].apply(qj)
def qj4(x):
if x
'0':
return 'A_0'
if x'1-1000':
return 'B_1-1000'
elif x
'1000-2000':
return 'C_1000-2000'
elif x'[1000,2000)':
return 'D_[1000,2000)'
elif x
'2000-3000':
return 'E_2000-3000'
elif x'3000-4000':
return 'F_3000-4000'
elif x
'4000-6000':
return 'G_4000-6000'
elif x'6000-8000':
return 'H_6000-8000'
elif x
'8000-10000':
return 'I_8000-10000'
elif x'10000-20000':
return 'J_10000-20000'
elif x
'20000-40000':
return 'K_20000-40000'
else: return "空值"
nn['最大逾期金额']=nn['最大逾期金额'].apply(qj4)
def qj1(x):
if x'0':
return 'A_0'
if x
'(0,500)':
return 'B_(0,500)'
elif x'[500,1000)':
return 'C_[500,1000)'
elif x
'[1000,2000)':
return 'D_[1000,2000)'
elif x'[2000,3000)':
return 'E_[2000,3000)'
elif x
'[3000,5000)':
return 'F_[3000,5000)'
elif x'[5000,10000)':
return 'G_[5000,10000)'
elif x
'[10000,20000)':
return 'H_[10000,20000)'
elif x'[20000,30000)':
return 'I_[20000,30000)'
elif x
'[30000,50000)':
return 'J_[30000,50000)'
elif x'[50000,+)':
return 'K_[50000,+)'
else: return "空值"
nn['近1个月履约贷款总金额']=nn['近1个月履约贷款总金额'].apply(qj1)
nn['近3个月履约贷款总金额']=nn['近3个月履约贷款总金额'].apply(qj1)
nn1=nn.copy()
import pandas as pd
data = {"变量":["最大逾期金额",
"最大逾期金额",
"最大逾期金额",
"最大逾期金额",
"最大逾期金额",
"最大逾期金额",
"最大逾期金额",
"最大逾期金额",
"最大逾期金额",
"最大逾期金额",
"消金贷款类机构最大授信额度",
"消金贷款类机构最大授信额度",
"消金贷款类机构最大授信额度",
"消金贷款类机构最大授信额度",
"消金贷款类机构最大授信额度",
"近1个月履约贷款总金额",
"近1个月履约贷款总金额",
"近1个月履约贷款总金额",
"近1个月履约贷款总金额",
"近1个月履约贷款总金额",
"近1个月履约贷款总金额",
"近1个月履约贷款总金额",
"近1个月履约贷款总金额",
"近1个月履约贷款总金额",
"近1个月履约贷款总金额",
"近1个月履约贷款总金额",
"近3个月履约贷款总金额",
"近3个月履约贷款总金额",
"近3个月履约贷款总金额",
"近3个月履约贷款总金额",
"近3个月履约贷款总金额",
"近3个月履约贷款总金额",
"近3个月履约贷款总金额",
"近3个月履约贷款总金额",
"近3个月履约贷款总金额",
"近3个月履约贷款总金额",
"近3个月履约贷款总金额",
"近3个月履约贷款总金额",
"按身份证号查询,近12个月在银行机构-网络零售银行申请次数",
"按身份证号查询,近12个月在银行机构-网络零售银行申请次数",
"按身份证号查询,近12个月在银行机构-网络零售银行申请次数",
"按身份证号查询,近12个月在银行机构-网络零售银行申请次数",
"按身份证号查询,近12个月在银行机构-网络零售银行申请次数",
"按身份证号查询,近12个月在银行机构-网络零售银行申请次数",
"按手机号查询,近6个月在银行机构申请次数",
"按手机号查询,近6个月在银行机构申请次数",
"按手机号查询,近6个月在银行机构申请次数",
"按手机号查询,近6个月在银行机构申请次数",
"按手机号查询,近6个月在银行机构申请次数",
"按手机号查询,近6个月在银行机构申请次数",
"按手机号查询,近6个月在银行机构申请次数",
"按手机号查询,近12个月在银行机构申请机构数",
"按手机号查询,近12个月在银行机构申请机构数",
"按手机号查询,近12个月在银行机构申请机构数",
"按手机号查询,近12个月在银行机构申请机构数",
"按手机号查询,近12个月在银行机构申请机构数",
"按手机号查询,近12个月在银行机构申请机构数",
"按手机号查询,近12个月在银行机构申请机构数",
"按身份证号查询,近12个月在银行机构申请机构数",
"按身份证号查询,近12个月在银行机构申请机构数",
"按身份证号查询,近12个月在银行机构申请机构数",
"按身份证号查询,近12个月在银行机构申请机构数",
"按身份证号查询,近12个月在银行机构申请机构数",
"按身份证号查询,近12个月在银行机构申请机构数",
"按身份证号查询,近12个月在银行机构申请机构数"],"区间":["B_1-1000",
"C_1000-2000",
"E_2000-3000",
"F_3000-4000",
"G_4000-6000",
"H_6000-8000",
"I_8000-10000",
"J_10000-20000",
"K_20000-40000",
"空值",
"A_[0,10000)",
"B_[10000,20000)",
"C_[20000,50000)",
"D_[50000,inf)",
"空值",
"A_0",
"B_(0,500)",
"C_[500,1000)",
"D_[1000,2000)",
"E_[2000,3000)",
"F_[3000,5000)",
"G_[5000,10000)",
"H_[10000,20000)",
"I_[20000,30000)",
"J_[30000,50000)",
"空值",
"A_0",
"B_(0,500)",
"C_[500,1000)",
"D_[1000,2000)",
"E_[2000,3000)",
"F_[3000,5000)",
"G_[5000,10000)",
"H_[10000,20000)",
"I_[20000,30000)",
"J_[30000,50000)",
"K_[50000,+)",
"空值",
"A_[1,2)",
"B_[2,7)",
"C_[7,15)",
"D_[15,17)",
"E_[17,inf)",
"空值",
"A_[0,3)",
"B_[3,5)",
"C_[5,9)",
"D_[9,24)",
"E_[24,26)",
"F_[26,inf)",
"空值",
"A_[0,4)",
"B_[4,5)",
"C_[5,17)",
"D_[17,21)",
"E_[21,23)",
"F_[23,inf)",
"空值",
"A_[0,5)",
"B_[5,7)",
"C_[7,10)",
"D_[10,18)",
"E_[18,24)",
"F_[24,inf)",
"空值"],"得分":[-61,
-79,
-79,
-119,
-119,
-119,
-119,
-119,
-119,
14,
-6,
0,
5,
18,
-26,
-3,
0,
-1,
1,
3,
1,
1,
4,
4,
6,
-6,
-12,
-9,
-6,
-2,
-4,
-10,
3,
6,
10,
18,
37,
-26,
-32,
-3,
6,
12,
24,
-46,
-17,
-7,
-1,
6,
20,
34,
-19,
-8,
-3,
0,
2,
5,
8,
-5,
-58,
-26,
-10,
0,
17,
42,
-68]}
pfk = pd.DataFrame(data)
pfk
coll=['最大逾期金额', '消金贷款类机构最大授信额度', '近1个月履约贷款总金额', '近3个月履约贷款总金额',
'按身份证号查询,近12个月在银行机构-网络零售银行申请次数', '按手机号查询,近6个月在银行机构申请次数',
'按手机号查询,近12个月在银行机构申请机构数', '按身份证号查询,近12个月在银行机构申请机构数']
ys=pfk
for i in coll:
dictys = dict(zip(ys[ys['变量']
i]['区间'],ys[ys['变量']==i]['得分']))
nn[i]=nn[i].map(dictys)
nn['fenshu'] = nn[coll].sum(axis=1)
nn['fenshu'] = 383+nn['fenshu']
nn.rename(columns={'fenshu':"tw_v200"},inplace=True)
nn.drop_duplicates(subset="idcard",inplace=True)
nn1.drop_duplicates(subset="idcard",inplace=True)
zt=nn1.merge(nn[['idcard','tw_v200']],on="idcard",how="left")
zt.drop_duplicates(subset='idcard',inplace=True)
def qj(x):
values=[0,277,318,350,375,389,400,410,425,444,np.inf]
index=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R']
for i in range(len(values)-1):
if values[i]<=x<values[i+1]:
return '{0}[{1},{2})'.format(index[i],values[i],values[i+1])
return '空值'
zt['tw_v200']=zt['tw_v200'].astype('float')
zt['tw_v200_bin']=zt['tw_v200'].apply(qj)
zd={"A
[0,277)":"1",
"B_[277,318)":"1",
"C_[318,350)":"1",
"D_[350,375)":"2",
"E_[375,389)":"2",
"F_[389,400)":"2",
"G_[400,410)":"2",
"H_[410,425)":"2",
"I_[425,444)":"3",
"J_[444,inf)":"3"}
zt['status']=zt['tw_v200_bin'].map(zd)
import pymysql
from sqlalchemy import create_engine
conn=pymysql.connect(host="112.124.40.41",user="score",passwd="jxy7RwPaLBryzFF8",db='score',port=9806)
conn = create_engine('mysql+pymysql://score:[email protected]:9806/score')
zt.to_sql("scorev2", conn, if_exists='append',index=False)
self.finish({'idcard': zt.at[0,'idcard'], 'score':zt.at[0,'tw_v200_bin'],'status':zt.at[0,'status']}) # 返回给前端,status 表示通过情况,0表示拒绝,1表示建议人审,2表示通过
if name == 'main':
define('port', default=8668, help='设置启动服务的端口', type=int) # 定义端口, 可以全局使用options.port获取,可通过命令行更改
application = tornado.web.Application(handlers=[('/score', BaseHandler)]) # 设置路由
server = tornado.httpserver.HTTPServer(application)
server.listen(options.port) # 监听端口8080,可以通过命令行改变,python xxx.py --port=8090
tornado.ioloop.IOLoop.instance().start() # 启动web服务

标签:12,return,nn,机构,接口,查询,api,values
From: https://www.cnblogs.com/chenqianguan/p/18244428

相关文章

  • python系列:python fastapi + uvicorn 记录日志的最佳实践,结合nb_log
    pythonfastapi+uvicorn记录日志的最佳实践,结合nb_logpythonfastapi+uvicorn记录日志的最佳实践,结合nb_logpythonfastapi+uvicorn记录日志的最佳实践,结合nb_logpythonfastapi+uvicorn记录日志的最佳实践,要记录对fastapi什么时候请求了什么url和入......
  • 阿里巴巴中国站关键字搜索API返回值应用案例:精准定位目标用户群体
    阿里巴巴中国站的关键字搜索API返回值在精准定位目标用户群体方面,具有广泛的应用案例。这些应用案例主要集中在以下几个方面:数据分析与市场调研:通过关键字搜索API,商家可以获取大量与特定商品或服务相关的搜索数据。对这些数据进行深度分析,可以了解目标用户群体的搜索习惯......
  • AiP74LVC1T45GB236.TR SOT23-6缓冲器/驱动器双电源接口电平转换
    AIP74LVC1T45GB236.TR是一款电平转换芯片,它的应用领域非常广泛,主要包括: 1.嵌入式系统:在嵌入式系统中,由于不同的外设可能工作在不同的电源电压下,该电平转换器可用于确保微控制器和其他逻辑电路之间的信号传输正确无误。 2.汽车电子:汽车电子系统经常需要处理来自不同电源......
  • python通过COM接口调用CANoe工具实现相关操作
    使用Python来操作CANoe(一个用于汽车总线系统设计、分析、仿真和测试的强大工具),你可以借助win32com库来实现。这涉及到使用COM接口来控制CANoe。以下是一个示例,演示了如何使用Python通过win32com库来操作CANoe。一、前提条件安装Python和win32com库:确保你已经安装了Python......
  • PTrade如何获取历史数据—PTrade量化API说明,get_price - 获取历史数据
    get_price-获取历史数据get_price(security,start_date=None,end_date=None,frequency='1d',fields=None,fq=None,count=None)使用场景该函数在研究、回测、交易模块可用接口说明该接口用于获取指定日期的前N条的历史行情K线数据或者指定时间段内的历史行情K线数......
  • C++入门 string常用接口(下)
    目录string类的常用接口说明string类对象的修改操作(修饰符)operator+= &append&push_backassign&inserterase&replaceswap&pop_backstring类对象的非成员函数 operator+relationaloperators(关系运算符)getlineto_string&stoi取域名使用实践string类......
  • 【接口自动化测试框架练习】springboot+react+mysql~极简版postman
    可以说是一个toyprogram,chatgpt完成了一部分工作,我也完成了一部分工作,我俩合作的,我占百分之80%,他百分之20%,哈哈没他不行,源码奉上。https://github.com/Jinwenxin/test-api-frontend1.功能简介:分成三部分,如左侧导航栏所示:测试用例管理:测试用例的增删改查以及运行测试套件管理......
  • 在WEPAPI接口无法查询物料分组
     数据分组仅有业务对象没有实体表, 所以接口不能直接访问数据分组BOS_FORMGROUP通过表名反查业务对象标识,接口中使用查询到的业务对象标识可正常查询到数据.注意:可能存在分组没有对应的业务对象的情况,此时需要新建业务对象并设置对应的分组表. ......
  • pytest接口自动化测试框架:为什么要做pytest插件的二次开发
    pytest二次开发的主要场景举例  https://blog.51cto.com/u_16213617/9796200 在进行接口自动化测试时,pytest框架提供了一套丰富的功能和插件,可以帮助我们快速编写和执行测试用例。然而,有时我们可能会遇到一些框架本身无法满足的特殊需求。这时,就需要进行pytest插件的二次开......
  • Spring Boot中的RESTful API详细介绍及使用
    在SpringBoot中,RESTfulAPI的实现通过控制器类中的方法和特定的注解来完成。每个注解对应不同的HTTP请求方法,并通过处理请求参数和返回响应来实现不同的操作。下面将详细解释RESTfulAPI中的各个方面,包括@GetMapping,@PostMapping,@PutMapping,和@DeleteMapping的作用......