我的对象如下所示:
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 个字节,但我的目标是提供合理紧凑的存储而不是最终紧凑性的精简代码。然而,我想避免大量的低效率,例如将每个音符存储为键值对——即键将被复制。
如果我能看到可供我使用的解决方案的范围,我可以选择适当的复杂性与紧凑性权衡。也就是说,我将不胜感激在连续统一体的任何地方都能得到答案。