diff --git a/pywxdump/api/utils.py b/pywxdump/api/utils.py index d2ccd2a6..172fa5e1 100644 --- a/pywxdump/api/utils.py +++ b/pywxdump/api/utils.py @@ -50,12 +50,15 @@ def save_session(session_file, wxid, arg, value): except json.JSONDecodeError as e: logging.error(f"Error decoding JSON file: {e}") return False + if wxid not in session: session[wxid] = {} + if not isinstance(session[wxid], dict): + session[wxid] = {} session[wxid][arg] = value try: with open(session_file, 'w') as f: - json.dump(session, f, indent=4) + json.dump(session, f, indent=4, ensure_ascii=False) except Exception as e: logging.error(f"Error writing to file: {e}") return False