小编Vin*_*t L的帖子

Python 和 C# 之间的通信

我有一个运行机器学习算法的 Python 后端。我想对 Excel 插件 (C#) 和网站使用相同的后端。我希望两个接口都将我的训练数据(数组中的数千行数字)发送到同一个 Python 应用程序,并以另一个数组的形式检索结果(最多数千行)。

该网站将从 SQL 数据库中获取数据并将该数据发送到 Python,而 Excel 插件将获取当前工作表中的数据并将该数据发送到 Python。在继续处理数据之前,我需要能够在 Python 中创建 numpy 数组。请注意,该网站将在 Python 应用程序所在的同一台机器上运行。我还没有决定用什么来编写网站代码,但我倾向于使用 Node.js。

我做了一些研究,发现了一些选择:

1- Named pipes
2- Sockets
3- RPC server such as gRPC or XML-RPC.
4- Writing the data to a file and reading it back in Python
5- Web Service
Run Code Online (Sandbox Code Playgroud)

注意:我需要 Python“服务器”是有状态的,并在调用之间保持会话运行。所以我需要有一种守护进程在运行,等待调用。

您会推荐哪一种?为什么?我需要灵活地处理多个参数以及大量数字。使用 IronPython 不是一种选择,因为我在 Python 上运行 Keras,它显然不支持 IronPython。

.net c# python rpc python.net

8
推荐指数
2
解决办法
2万
查看次数

在 Java 中使用 WSS4j 签署肥皂消息

我正在编写一个 Java 客户端应用程序,它需要对 SOAP 消息(包含 2 个部分)进行签名,并在获取响应之前将其发送到远程服务器。我设法在 SoapUI 中成功调用(请参阅下面的请求和屏幕截图)。

我已准备好大部分代码,但我不断收到来自服务器的错误消息,内容为:

SECU3504: Digital signature verification failure.
Signature failed core validation

Signature validation status: true
ref[#id-32e3db92-b6fd-42a5-b032-a0dc2a15ae82] validity status: false
ref[#id-2b67ce75-e25f-4f66-b265-80a0e31911ec] validity status: false 
Run Code Online (Sandbox Code Playgroud)

这是我的Java代码:

// Load KeyStore from .PFX certificate
KeyStore store = KeyStore.getInstance("PKCS12");
store.load(new FileInputStream(certificateFileName), certificatePassword.toCharArray());

// Build XML Document from String
String data = "..."; // Same request as in SoapUI
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
doc = dBuilder.parse(new ByteArrayInputStream(data.getBytes()));

// Load certificate
String alias = store.aliases().nextElement(); …
Run Code Online (Sandbox Code Playgroud)

java soap signing wss4j

4
推荐指数
1
解决办法
8241
查看次数

Python - 按时间间隔分组的时间加权平均Pandas

我在Pandas DataFrame中有一个时间序列.时间戳可能不均匀(每1-5分钟一个),但总会有一个每5分钟一次(时间戳以分钟结尾于0,5,10,15,20,25,30,35,40,45,50 ,55).

例:

2017-01-01 2:05:00   32.90
2017-01-01 2:07:30   29.83
2017-01-01 2:10:00   45.76
2017-01-01 2:15:00   16.22
2017-01-01 2:20:00   17.33
2017-01-01 2:25:00   23.40
2017-01-01 2:28:45   150.12
2017-01-01 2:30:00   100.29
2017-01-01 2:35:00   38.45
2017-01-01 2:40:00   67.12
2017-01-01 2:45:00   20.00
2017-01-01 2:50:00   58.41
2017-01-01 2:55:00   58.32
2017-01-01 3:00:00   59.89
Run Code Online (Sandbox Code Playgroud)

我想获得15分钟的时间加权平均值.带有时间戳的行直接在15分钟标记(时间戳以分钟结尾于0,15,30,45)结束一个间隔,因此分组如下:

Group 1 (interval 2017-01-01 2:00:00):
    2017-01-01 2:05:00   32.90
    2017-01-01 2:07:30   29.83
    2017-01-01 2:10:00   45.76
    2017-01-01 2:15:00   16.22

Group 2 (interval 2017-01-01 2:15:00):
    2017-01-01 2:20:00   17.33
    2017-01-01 2:25:00   23.40
    2017-01-01 2:28:45   150.12
    2017-01-01 2:30:00 …
Run Code Online (Sandbox Code Playgroud)

python timestamp time-series weighted-average pandas

3
推荐指数
1
解决办法
1531
查看次数

UPSERT多记录MSSQL

我目前有一个MySQL服务器,但目前正在迁移到MS SQL Server。

我试图在C#应用程序的表中每批插入很多(2000)或记录。我想复制MySQL的“ REPLACE INTO”(替换)(UPSERT),如果记录存在,我想更新它,如果记录不存在,我想插入它。我目前有一个这样的声明:

REPLACE INTO tablename (keycol, col1, col2)
VALUES ('A','B','C'),
       ('C','D','E'),
       ('F','G','H'),
       ('I','J','K');
Run Code Online (Sandbox Code Playgroud)

有些记录将存在,而另一些则不存在。另外,该语句将在许多不同的表上运行,并且值是在运行时构建的(通过动态循环遍历每个字段),因此在编译时表的结构未知。

我怀疑我是否可以有效地使用MERGE,因为该批次中的某些记录将存在而一些记录将不存在,并且由于我不知道事前的表格结构以及我正在更新批次的事实。 2000条记录,出于性能原因,我不想使用子查询。

最好的解决方案的任何帮助将不胜感激。

mysql sql-server merge upsert

2
推荐指数
2
解决办法
1130
查看次数

使用 pd.Grouper 按月初分组的 Pandas

我有一个带有每小时时间戳的 DataFrame:

2019-01-01 0:00:00             1
2019-01-01 1:00:00             2
2019-01-11 3:00:00             1
2019-01-21 4:00:00             2
2019-02-01 0:00:00             1
2019-03-05 1:00:00             2
2019-03-21 3:00:00             1
2019-04-08 4:00:00             2
Run Code Online (Sandbox Code Playgroud)

我正在使用 Pandas Grouper 每月对数据进行分组和求和:

monthly_data = [pd.Grouper(freq='M', label='left')].sum()
Run Code Online (Sandbox Code Playgroud)

预期输出:

2019-01-01 0:00:00             6
2019-02-01 0:00:00             1
2019-03-01 0:00:00             3
2019-04-01 0:00:00             2
Run Code Online (Sandbox Code Playgroud)

实际输出:

2018-12-31 0:00:00             6
2019-01-31 0:00:00             1
2019-02-28 0:00:00             3
2019-03-30 0:00:00             2
Run Code Online (Sandbox Code Playgroud)

如何让组的标签成为组中的第一个元素?

谢谢

python datetime group-by pandas pandas-groupby

2
推荐指数
1
解决办法
966
查看次数