Module pywander.json
Functions
def get_json_data(json_filename, default_data=None)
-
Expand source code
def get_json_data(json_filename, default_data=None): """ get json file data """ with open(get_json_file(json_filename, default_data=default_data), encoding='utf8') as f: data = json.load(f) return data
get json file data
def get_json_file(json_filename, default_data=None)
-
Expand source code
def get_json_file(json_filename, default_data=None): """ try get json file or auto-create the json file with default_data """ default_data = default_data if default_data is not None else {} if not os.path.exists(json_filename): data = default_data write_json(json_filename, data) return json_filename
try get json file or auto-create the json file with default_data
def get_json_value(json_filename, key, default_data=None)
-
Expand source code
def get_json_value(json_filename, key, default_data=None): """ get value by key in json file if your json file stored value as one dict. """ data = get_json_data(json_filename, default_data=default_data) if not isinstance(data, dict): raise Exception( "the target json file must stored whole data as one dict.") return data.get(key)
get value by key in json file if your json file stored value as one dict.
def set_json_value(json_filename, key, value, default_data=None)
-
Expand source code
def set_json_value(json_filename, key, value, default_data=None): """ set value by key and value in json file if your json file stored value as one dict. """ data = get_json_data(json_filename, default_data=default_data) if not isinstance(data, dict): raise Exception( "the target json file must stored whole data as one dict.") data[key] = value write_json(get_json_file(json_filename), data)
set value by key and value in json file if your json file stored value as one dict.
def write_json(file, data)
-
Expand source code
def write_json(file, data): """ wirte data to json file, use a temporary file as a medium """ with tempfile.NamedTemporaryFile(mode='wt', encoding='utf8', delete_on_close=False) as fp: json.dump(data, fp, indent=4, ensure_ascii=False) fp.close() logger.debug(f'create a temporary file: {fp.name}') shutil.copyfile(fp.name, file)
wirte data to json file, use a temporary file as a medium