我有python服務器,通過使用marshal
module序列化一些字典。並將序列化的消息發送到C#客戶端套接字。如何在客戶端(c#)端反序列化此消息。由於執行速度的問題,我無法使用IronPython。Python序列化c#反序列化
或者你知道其他的方式來序列化/反序列化Python和C#之間的「消息」。
我有python服務器,通過使用marshal
module序列化一些字典。並將序列化的消息發送到C#客戶端套接字。如何在客戶端(c#)端反序列化此消息。由於執行速度的問題,我無法使用IronPython。Python序列化c#反序列化
或者你知道其他的方式來序列化/反序列化Python和C#之間的「消息」。
JSON呢?你可以爲C#編寫或者甚至找到一個de-Python pickle-er,但是像dict這樣的東西很容易用JSON來表示,這是一個衆所周知的定義良好的標準,可靠,快速的serilaize /反序列化庫幾乎在每種語言中都存在。當然也有XML,但JSON通常更容易處理。
marshal
通常是針對Python的。如果你想跨語言支持,那麼你應該使用json
。
作爲marshal
的替代方案,「協議緩衝區」在python和c#中都有很好的支持。 Google提供了python實現,並且有多個c#實現。協議緩衝區提供出色的版本支持,豐富多樣的跨平臺實現以及非常高效的串行化,是快速二進制套接字使用的理想選擇。
您應該使用WCF進行互操作。 –
執行問題的速度是多少? –
@ IgnacioVazquez-Abrams該程序應在3秒內執行。並且IronPython模塊執行會增加1-3秒的時間。 – godloky