概要
- AWS LambdaでJSONファイルを出力し、それをiOSのアプリケーションで読み込ませた
- iPadが古い(初代iPad Air)のと、諸々の事情で25万レコードを1ファイルに持つ必要があり、JSONだとパースのときに死ぬ
- plistのバイナリにしたらパース不要で負荷も低減
JSON | plistバイナリ | |
---|---|---|
ファイルサイズ | 12MB | 7MB |
メモリ使用量 | 112MB | 45MB |
※ファイルサイズはその後の調整でJSONでもそれほど変わらなくなったので、サイズに関してはあまり期待しないほうがよいかも
#Pythonでplistバイナリを出力する
plistlibを使います。
plistlib.dump(value, fp, *, fmt=FMT_BINARY, sort_keys=True, skipkeys=False)
例
import plistlib
:
def save_to_plist(data):
data_set = []
for record in data:
data_set.append(
(
record['code'],
record['name']
)
)
save_path = "/tmp/article.plist"
with open(save_path, "wb") as fp:
plistlib.dump(data_set, fp, fmt=plistlib.FMT_BINARY, sort_keys=True, skipkeys=False)
return save_path
これだけです。簡単ですね