Как укоротить строку, чтобы потом её можно было вернуть
Написал скрипт на Питоне, который читает данные из банарного файла и записывает информацию в json (и обратно). Некоторые значения получаются очень длинные, поэтому и вес json файла приличный. Некоторые значения нужно значительно укоротить, с возможностью возврата в исходное состояние.
Код:
def readInt(file, size): #для записи в json
return int.from_bytes(file.read(size), "little")
def writeInt(file, count, value): #для записи из json
file.write(value.to_bytes(count, "little"))
club['Unk8'] = readInt(datFile, 74) #запись в json
writeInt(datFile, 74, club['Unk8']) #запись из json в бинарный
В Json выглядит так:
Unk8": "0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00"
Как максимально укоротить строку Unk8, чтобы можно было обратно вернуть её без потерь?
Ответы (1 шт):
Автор решения: nickwaze
→ Ссылка
Если во всех строках много повторяющихся символов, то можно хранить порядок уникальных символов и количество их повторений. Можно хранить как и строку, которую потом обратно парсить или как массив сразу.
"Unk8": "0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00"
"Unk8":"04.F2.04. и т.д."
"Unk8":[
{'symbol':'0', 'count':4}, и т.д.