You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何从外部JSON文件删除密码管理器的登录信息?

解决密码管理器中删除JSON存储的登录信息问题

你当前的代码存在两个核心问题:

  • 遍历data['info']时执行del info,只是删除了循环里的临时变量引用,并没有真正从原列表中移除对应元素
  • 修改后的数据没有写回JSON文件,文件内容不会产生任何变化

方案1:创建过滤后的新列表(推荐,代码简洁安全)

直接生成不包含目标URL项的新列表,替换原列表后写回文件:

import json

INFO_PATH = "your_file_path.json"  # 替换为你的实际文件路径

url = input('Paste Login Page URL Here : ')

# 读取JSON数据
with open(INFO_PATH, 'r') as file:
    data = json.load(file)

# 过滤掉匹配目标URL的项
data['info'] = [item for item in data['info'] if item['website_url'] != url]

# 将修改后的数据写回文件
with open(INFO_PATH, 'w') as file:
    json.dump(data, file, indent=4)  # indent=4让JSON格式更易读

print("登录信息已删除(存在匹配项时)")

方案2:倒序遍历原列表删除元素

如果要直接在原列表上修改,可采用倒序遍历的方式(避免正向遍历删除元素时的索引错乱问题):

import json

INFO_PATH = "your_file_path.json"

url = input('Paste Login Page URL Here : ')

with open(INFO_PATH, 'r') as file:
    data = json.load(file)

# 倒序遍历列表,删除匹配的元素
for i in range(len(data['info'])-1, -1, -1):
    if data['info'][i]['website_url'] == url:
        del data['info'][i]

# 写回修改后的数据
with open(INFO_PATH, 'w') as file:
    json.dump(data, file, indent=4)

print("操作完成")

关键注意点

  • 必须使用'w'模式重新打开文件写入,才能覆盖原文件内容
  • 两种方案都支持批量删除多个相同URL的项;若只需删除第一个匹配项,可在找到后添加break语句(仅适用于方案2)
  • 可额外添加判断逻辑:如果过滤后的列表长度与原列表一致,说明未找到匹配项,给用户提示“未找到对应登录信息”

内容的提问来源于stack exchange,提问作者Lavaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:31:06