def load_json(cls, f):
"""
Loads model file saved as JSON file from text stream ``f``.
"""
m = cls()
record = json.load(f)
# Load header
if 'header' not in record:
raise InvalidModelFormatError('header section does not exist')
m.header.set(record['header'])
# Load system_data
if 'system' not in record:
raise InvalidModelFormatError('system section does not exist')
m.system.set(record['system'])
# Load user_data
if 'user_raw' in record:
if 'user' in record:
printe('Notice: using "user_raw" record from JSON; "user" record is ignored')
raw = base64.b64decode(record['user_raw'])
try:
m.user = cls.UserContainer.loads(raw)
except UnicodeDecodeError:
printe('Warning: model contains non UTF-8 strings; cannot be loaded')
m.user = cls.UserContainer()
m.user.user_data = None
m._user_raw = raw
elif 'user' in record:
m.user.set(record['user'])
else:
raise InvalidModelFormatError('user or user_raw section does not exist')
return m
评论列表
文章目录