Persist and load StarrailInfoParsed data
mainSince the models are Pydantic-based, you can persist data using standard Python methods like pickle or json.
JSON Persistence
- Save: Use
data.json(by_alias=True, ensure_ascii=False)to generate a JSON string. - Load: Use
StarrailInfoParsed.parse_raw(json_string)to reconstruct the model.
Pickle Persistence
- Save: Use
pickle.dumps(data). It is recommended to usezlib.compress()to reduce size. - Load: Use
pickle.loads(zlib.decompress(compressed_data))to reconstruct the object.
import pickle
import zlib
from mihomo import MihomoAPI, Language, StarrailInfoParsed
client = MihomoAPI(language=Language.EN)
data = await client.fetch_user(800333171)
# --- Save ---
# Pickle with compression
pickle_data = zlib.compress(pickle.dumps(data))
# JSON
json_data = data.json(by_alias=True, ensure_ascii=False)
# --- Load ---
# From Pickle
data_from_pickle = pickle.loads(zlib.decompress(pickle_data))
# From JSON
data_from_json = StarrailInfoParsed.parse_raw(json_data)