本发明涉及计算机技术领域,特别涉及一种调用Python算法的方法和装置。

背景技术:

Python是一种高级编程语言,相比其他语言,其在算法实现等具有较大优势。例如,完成同一个任务,C语言需要写1000行代码,C#需要写100行代码,而Python只需要写20行代码。并且,Python拥有众多的开源函数库。

现有技术中,.NET平台中的应用无法调用Python算法。

技术实现要素:

本发明实施例提供了一种调用Python算法的方法和装置,能够实现.NET平台中的应用调用Python算法。

第一方面,本发明实施例提供了一种调用Python算法的方法,预先设置至少一个Python算法,还包括:

当接收到触发时,将每一个所述Python算法发布为对应的Python Web API;

接收.NET平台中的应用针对目标Python Web API发送的HTTP请求;

根据所述HTTP请求调用所述目标Python Web API;

将所述目标Python Web API反馈的调用结果发送给所述.NET平台中的应用。

优选地,

进一步包括:预先设置启动程序;

所述当接收到触发时,将每一个所述Python算法发布为对应的Python Web API,包括:

当接收到触发时,利用所述启动程序将每一个所述Python算法发布为对应的Python Web API。

优选地,

所述HTTP请求中包括:调用方式、URL;

所述根据所述HTTP请求调用所述目标Python Web API,包括:

根据所述HTTP请求中的URL确定所述目标Python Web API;

根据所述调用方式调用所述目标Python Web API。

第二方面,本发明实施例提供了一种调用Python算法的装置,包括:

设置单元,用于设置至少一个Python算法;

发布单元,用于当接收到触发时,将所述设置单元设置的每一个所述Python算法发布为对应的Python Web API;

调用单元,用于接收.NET平台中的应用针对目标Python Web API发送的HTTP请求;根据所述HTTP请求调用所述目标Python Web API;

通信单元,用于将所述目标Python Web API反馈的调用结果发送给所述.NET平台中的应用。

优选地,

所述设置单元,进一步用于设置启动程序;

所述发布单元,用于当接收到触发时,利用所述启动程序将每一个所述Python算法发布为对应的Python Web API。

优选地,

所述HTTP请求中包括:调用方式、URL;

所述调用单元,用于根据所述HTTP请求中的URL确定所述目标Python Web API;根据所述调用方式调用所述目标Python Web API。

第三方面,本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一实施例中所述的方法。

第四方面,本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;

所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一实施例中所述的方法。

本发明实施例提供了一种调用Python算法的方法和装置,其中,在该方法中,.NET与Python的交互基于HTTP协议,Python算法能够发布为对应的Python Web API,.NET平台中的应用通过发送HTTP请求调用Python Web API,并接收Python Web API返回的调用结果。本发明提供的方案能够实现.NET平台中的应用调用Python算法。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例提供的一种调用Python算法的方法的流程图;

图2是本发明另一个实施例提供的一种调用Python算法的方法的流程图;

图3是本发明一个实施例提供的一种调用Python算法的装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种调用Python算法的方法,包括以下步骤:

步骤101:设置至少一个Python算法;

步骤102:当接收到触发时,将每一个Python算法发布为对应的Python Web API;

步骤103:接收.NET平台中的应用针对目标Python Web API发送的HTTP请求;

步骤104:根据HTTP请求调用目标Python Web API;

步骤105:将目标Python Web API反馈的调用结果发送给.NET平台中的应用。

在该方法中,.NET与Python的交互基于HTTP协议,Python算法能够发布为对应的Python Web API,.NET平台中的应用通过发送HTTP请求调用Python Web API,并将目标Python Web API反馈的调用结果发送给.NET平台中的应用。本发明提供的方案能够实现.NET平台中的应用调用Python算法。

如下所示是Python算法代码的一种实现形式:

在本发明的一个实施例中,该方法还包括:预先设置启动程序;

当接收到触发时,将每一个Python算法发布为对应的Python Web API,包括:

当接收到触发时,利用启动程序将每一个Python算法发布为对应的Python Web API。

如下所示的是启动程序代码的一种实现形式:

在本发明的一个实施例中,HTTP请求中包括:调用方式、URL;

根据HTTP请求调用目标Python Web API,包括:

根据HTTP请求中的URL确定目标Python Web API;

根据调用方式调用目标Python Web API。

启用命令窗口,执行启动程序,Python Web API应用的监听端口默认为5000。

创建C#的控制台应用程序,编写测试代码并获得模拟算法返回的结果,测试代码如下所示:

如图2所示,本发明实施例以.NET平台中的应用调用Python算法为例,对调用Python算法的方法进行详细地说明,该方法包括:

步骤201:设置启动程序、至少一个Python算法。

步骤202:当接收到触发时,利用启动程序将每一个Python算法发布为对应的Python Web API。

步骤203:接收.NET平台中的应用针对目标Python Web API发送的HTTP请求。

HTTP请求中包括:调用方式、URL;

调用方式,包括:GET和POST中任意一种。

步骤204:根据HTTP请求中的URL确定目标Python Web API。

步骤205:根据调用方式调用目标Python Web API。

步骤206:将目标Python Web API反馈的调用结果发送给.NET平台中的应用。

如图3所示,本发明实施例提供了一种调用Python算法的装置,包括:

设置单元301,用于设置至少一个Python算法;

发布单元302,用于当接收到触发时,将设置单元301设置的每一个Python算法发布为对应的Python Web API;

调用单元303,用于接收.NET平台中的应用针对目标Python Web API发送的HTTP请求;根据HTTP请求调用目标Python Web API;

通信单元304,用于将目标Python Web API反馈的调用结果发送给.NET平台中的应用。

在本发明的一个实施例中,设置单元301,进一步用于设置启动程序;

发布单元302,用于当接收到触发时,利用启动程序将每一个Python算法发布为对应的Python Web API。

在本发明的一个实施例中,HTTP请求中包括:调用方式、URL;

调用单元303,用于根据HTTP请求中的URL确定目标Python Web API;根据调用方式调用目标Python Web API。

本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行执行指令时,存储控制器执行上述任一实施例的方法。

本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;

存储器用于存储执行指令,处理器与存储器通过总线连接,当存储控制器运行时,处理器执行存储器存储的执行指令,以使存储控制器执行上述任一实施例的方法。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

综上,本发明各个实施例至少具有如下效果:

1、在本发明实施例中,在该方法中,.NET与Python的交互基于HTTP协议,Python算法能够发布为对应的Python Web API,.NET平台中的应用通过发送HTTP请求调用Python Web API,并将目标Python Web API反馈的调用结果发送给.NET平台中的应用。本发明提供的方案能够实现.NET平台中的应用调用Python算法。

2、在本发明实施例中,将Python算法发布为Python Web API,基于HTTP协议进行调用,调用过程简单,不受Python语法以及调用方式的影响。

3、在本发明实施例中,该方法可扩展性强,在需要调用新算法时,只需改变启动程序,在启动程序中增加对新算法的调用方法,并绑定一个访问URL即可。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。