2011-12-28 13 views
1

iOSとPythonの間に共有バイナリ形式はありますか?バイナリプロパティリストが見つかりました。iOSとPythonの共有バイナリ形式

私はUIBeziarPathのリストをPythonに送ることができる配列にしました。私は非常に効率的にそれを行うことができる何かを探しています。私はJSONのようなテキストベースのフォーマットを調べましたが、この目的のためにバイナリフォーマットより効率が悪いように見えました。

+0

JSON *は、データの内容によっては効率が悪い可能性があります。 Bézierコントロールポイントがすべて[10進]の長さの10進数 - '[[3.52134223、-1.138]、[0.847120941,0.001883412]]'の場合、バイナリ形式が勝ちますが、整数の場合は[[[234,28]、[ -202,0]] ' - JSONはバイナリ形式よりもコンパクトで、8バイトとオーバヘッドを格納するのにオーバーヘッドを使用する傾向があることがあります。帯域幅が大きな懸念事項である場合は、カーブに存在するデータのパターンを利用する独自の圧縮をロールバックする必要が生じる可能性があります(デルタ圧縮の隣接するコントロールポイントなど)。 –

+0

実際、BERT(前に言及したことを忘れた別のバイナリ形式)を使用すると、実数は実際にはASCII 10進表現でエンコードされるため、エンコードサイズの利点はまったくありません。 –

+0

私はこれについて非常に新しいです、あなたはどのようにしてiosでBERT形式を実装していますか? – user1120008

答えて

1

iOS/Python専用のフォーマットはありません。プロトコルバッファ、BSON、ASN.1(あなたがそのように傾いているならば)、そしてバイナリXMLシリアル化フォーマットの範囲さえ含めて、のような多くのデータ交換フォーマットがあります。

OTOHの場合、帯域幅が非常に狭い場合を除き、JSON(テキスト形式)を強く推奨します。

EDIT:私はバイナリ送信のための別の強力な候補者であるBERTについて言及していません。私は他のバイナリフォーマットよりもBERTに賛成ですが、エンコードサイズに関する最初の質問に私のコメントを書き留めておきます。

1

Pythonにはstruct標準モジュールがあり、Python型(struct.unpack)または逆方向(struct.pack)への変換で単純なバイナリ形式を簡単に操作できます。

関連する問題