3

marshalモジュールを使用して辞書をシリアル化するPythonサーバーがあります。そして、シリアル化されたメッセージをc#クライアントソケットに送信します。クライアント(c#)側でこのメッセージを逆シリアル化する方法。実行速度に問題があるため、IronPythonを使用できません。

または、PythonとC#の間で「メッセージ」をシリアル化/逆シリアル化する他の方法を知っていますか。

4

4 に答える 4

3

JSONはどうですか?C# の de-Python-pickle-er を作成したり、見つけたりすることもできますが、dict のようなものは JSON で簡単に表現できます。これは、ライブラリを信頼性が高く高速にシリアル化/逆シリアル化するためのよく知られた、明確に定義された標準です。ほぼすべての言語に存在します。もちろん XML もありますが、通常は JSON の方が扱いやすいです。

于 2012-12-06T22:51:47.030 に答える
1

YAMLサポートは多くの言語で利用可能であり、多くのデータ型をサポートします。JSON構文はYAMLバージョン1.2のサブセットであり、幅広いサポートも受けています。

于 2012-12-06T23:28:19.650 に答える
1

marshal通常、Python 固有です。言語間のサポートが必要な場合は、json代わりに使用する必要があります。

于 2012-12-06T22:50:59.500 に答える
0

の代わりにmarshal、「プロトコル バッファ」は Python と C# の両方で適切にサポートされています。Google は python 実装を提供しており、複数の c# 実装があります。プロトコル バッファは、優れたバージョニング サポート、豊富な種類のクロス プラットフォーム実装、およびバイナリ ソケットの高速使用に最適な非常に効率的なシリアライゼーションを提供します。

于 2012-12-06T22:59:42.757 に答える