Python中如何根据指定server_id值删除JSON列表内的对应字典元素
实现步骤
- 第一步:用
json.loads()(处理JSON字符串)或者json.load()(处理JSON文件)把JSON数据转为Python的列表对象 - 第二步:通过列表推导式过滤掉
server_id等于目标值的字典元素 - 第三步:如果需要输出为JSON格式或者写回文件,再用
json.dumps()或者json.dump()处理即可
场景1:处理JSON字符串
import json # 原始JSON字符串 raw_json_str = ''' [ { "server_id": 800602366797021184, "command_name": "emoji" }, { "server_id": 842860085147074578, "command_name": "emoji" } ] ''' # 加载为Python列表 data_list = json.loads(raw_json_str) # 要删除的目标server_id target_server_id = 842860085147074578 # 过滤列表,仅保留不符合删除条件的元素 filtered_list = [item for item in data_list if item["server_id"] != target_server_id] # 如需转回JSON字符串,可使用以下代码 result_json = json.dumps(filtered_list, indent=4, ensure_ascii=False) print(result_json)
场景2:直接处理本地JSON文件
import json # 替换为你的实际文件路径 file_path = "data.json" # 读取JSON文件内容 with open(file_path, "r", encoding="utf-8") as f: data_list = json.load(f) target_server_id = 842860085147074578 filtered_list = [item for item in data_list if item["server_id"] != target_server_id] # 写回文件,不需要覆盖原文件可替换为新的输出路径 with open(file_path, "w", encoding="utf-8") as f: json.dump(filtered_list, f, indent=4, ensure_ascii=False)
内容的提问来源于stack exchange,提问作者Shaun
相关产品推荐
相关产品推荐

