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)