私のオブジェクトは次のようになります。
class Note(object):
def __init__(self, note, vel, t, tOff=0):
self.note = note # ubyte
self.vel = vel # ubyte
self.t = t # float
self.tOff = tOff # float
(型表示は、Python が実際にこれらを格納する方法ではなく、各フィールドに必要な精度を示しています!)
私のプログラムは、おそらく数千の Note-s の配列を構築します。
この配列を文字列に変換して、サーバーに AJAX で保存できるようにする必要があります (その後、取得して元のデータ構造に変換します)。
私は、Python の JSON ライブラリを実装するBrythonimport json
を使用しています (テスト済み:動作します。したがって、JSON が最善の策であると思われます。
しかし、Brython は CPython の完全な実装ではないため、おそらく非コア ライブラリをインポートすることはできません。また、スロットを使用してストレージ効率の高いクラスを作成するなど、手の込んだことはできないようです。(Brython は、Python 構造を適切な JavaScript 構造にマップします)。
理論的には、各ノートを 10 バイトまで下げることができるはずですが、究極のコンパクトさではなく、適度にコンパクトなストレージを提供する無駄のないコードを目指しています。ただし、各メモをキーと値のペアとして保存するなどの大幅な非効率性は避けたいと思います。つまり、キーが重複することになります。
利用可能なソリューションの範囲を確認できれば、適切な複雑さとコンパクトさのトレードオフを選択できます。つまり、連続体のどこかに答えがあればありがたいです。