Python进行JSON文件的数据操作及管理
         2 个月前
        
        JSONFileManager是一个Python类,用于封装对JSON文件的操作。它提供了用于读取、写入、追加、删除和更新JSON文件内容的方法。通过使用JSONFileManager类,你可以方便地管理和操作JSON文件数据,实现数据的持久化存储和修改。
下面是示例代码,演示如何实现过程
import json
class JsonFileHandler:
    def __init__(self,file_path):
        self.file_path = file_path
    def read_json(self):
        读取json文件,并返回解析后的对象
        :return:
        with open(self.file_path,'r') as file:
            data = json.load(file)
        return data
    def write_json(self,data):
        将python对象转换为json格式,并写入到文件中  如果是原始文件操作则直接替换了之前的所有内容,所以适合写新的json
        :param data:
        :return:
        with open(self.file_path,'w') as file:
            json.dump(data,file,indent=4)
    def append_to_json(self,file_path,data):
            with open(file_path,'r+') as file:
                exist_data = json.load(file)  #先读取已有的json数据
                exist_data.append(data)  #追加新的数据到已有数据中
                file.seek(0)   #移动文件指针到文件开头
                json.dump(exist_data,file,indent=4)  #以美观的格式进行写入
                file.truncate()
        except FileNotFoundError:
            with open(file_path,'w') as file:
                json.dump([data],file,indent=4)
    def delete_from_json(self,key):
        删除指定内容
        :param key: 
        :return: 
            with open(file_path,'r') as file:
                data = json.load(file)  #先读取已有的json数据
        except FileNotFoundError:
            print("json 文件不存在")
            return 
        if key in data:
            del data[key]
            with open(file_path, 'w') as file: 
                json.dump(data,file,indent=4)
                print(f"Key '{key}' 已成功从json文件中删除")
        else:
            print(f"Key '{key}' 不存在于json文件中")                
    def update_json(self,key,new_value):
        读取json文件,更新其中的数据,并将更新后的数据写回到文件中
        :param key: 
        :param new_value: 
        :return: 
            with open(file_path, 'r') as file:
                data = json.load(file)  # 先读取已有的json数据
        except FileNotFoundError:
            print("json 文件不存在")
            return
        if key in data:
            data[key] = new_value
            with open(file_path, 'w') as file:
                json.dump(data, file, indent=4)
                print(f"Key '{key}' 的值已成功更新为'{new_value}'")
        else:
            print(f"Key '{key}' 不存在于json文件中")
if __name__ == '__main__':
    file_path =r"D:\AASEXCHDATE.json"
    jsonq = JsonFileHandler(file_path)
    # print(JsonFileHandler(file_path).read_json())
    # jsonq.write_json(data={'indexe':'hellos'})
              
             
代码解释:
read_json() 函数 读取 JSON 文件并返回其解析后的 Python 对象表示。
write_json() 函数,你可以将 Python 对象转换为 JSON 格式并将其写入文件中。
append_to_json 函数,它接受一个文件路径和要追加的数据。在函数内部,通过读取已有的 JSON 数据,将新数据追加到已有数据中,并以美观的格式写回到文件中。如果文件不存在,则创建一个新文件,并将数据写入。
请注意,在这个示例中,假设 JSON 文件中的数据是一个列表,所以我们将新数据追加到现有数据的末尾。如果你的 JSON 文件中的数据是一个字典,你可以根据实际情况进行修改。
确保将 'example.json' 替换为实际的 JSON 文件路径,将 data_to_append 替换为要追加的实际数据。
delete_from_json 函数接受一个文件路径和要删除的键名(指定的内容)。函数首先尝试打开指定的 JSON 文件并将其加载为 Python 对象。然后,它会检查指定的键是否存在于 JSON 数据中。如果存在,则删除该键并将更新后的数据写回到文件中。如果键不存在,则输出相应的提示信息
update_json 函数接受一个文件路径、要更新的键名以及新的值作为参数。函数首先尝试打开指定的 JSON 文件并将其加载为 Python 对象。然后,它会检查指定的键是否存在于 JSON 数据中。如果存在,则更新该键的值为新的值,并将更新后的数据写回到文件中。如果键不存在,则输出相应的提示信息。
              
             
在 JSON 文件中,indent 参数用于指定输出格式时的缩进级别。
当你使用 json.dump() 或 json.dumps() 函数将 Python 对象转换为 JSON 字符串时,可以通过设置 indent 参数来指定每个级别的缩进空格数量,以便更好地可读性。
例如,如果你设置 indent=4,输出的 JSON 字符串将使用四个空格进行缩进,看起来更清晰和易读。这有助于在文件中或在终端中查看 JSON 数据时增加可读性。
以下是示例代码:
import json
data = {'key1': 'value1', 'key2': 'value2'}
# 使用 indent=4 进行格式化缩进
formatted_json = json.dumps(data, indent=4)


 
                        