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

基于Meraki Python库:从字典列表中移除指定字典

处理Meraki防火墙规则的解决方案

步骤1:获取防火墙规则

先通过Meraki库拿到目标网络的防火墙规则,假设你已经完成了API初始化:

import meraki

# 初始化Dashboard API,替换为你的API密钥
dashboard = meraki.DashboardAPI('YOUR_API_KEY')

# 获取指定网络的三层防火墙规则,替换为你的网络ID
network_id = 'YOUR_NETWORK_ID'
firewall_rules = dashboard.appliance.getNetworkApplianceFirewallL3FirewallRules(network_id)

步骤2:移除固定内容的最后一项规则

由于待移除的规则始终是列表最后一项且内容固定,提供两种处理方式:

方法1:直接移除最后一项(简单高效)

# 先确保规则列表不为空,避免报错
if firewall_rules['rules']:
    firewall_rules['rules'].pop()

方法2:验证后移除(更稳妥,防止误删)

先定义固定的待移除规则模板,再匹配最后一项:

# 替换为你实际的固定规则内容
target_remove_rule = {
    'comment': 'Remove',
    'policy': 'allow',
    'srcCidr': 'FIXED_SRC_IP',
    'destCidr': 'FIXED_DEST_IP'
}

rules_list = firewall_rules['rules']
# 检查列表非空且最后一项匹配目标规则
if rules_list and rules_list[-1] == target_remove_rule:
    rules_list.pop()

步骤3:在列表第0位插入新规则

# 定义你要插入的新规则
new_firewall_rule = {
    'comment': 'New Priority Rule',
    'policy': 'deny',
    'srcCidr': '192.168.0.0/24',
    'destCidr': '0.0.0.0/0'
}

# 插入到规则列表的首位
firewall_rules['rules'].insert(0, new_firewall_rule)

步骤4:(可选)保存修改到Meraki

如果需要将修改后的规则同步回Meraki平台,调用更新接口:

dashboard.appliance.updateNetworkApplianceFirewallL3FirewallRules(
    network_id,
    rules=firewall_rules['rules']
)

注意事项

  • 操作前建议先打印firewall_rules['rules']确认规则结构,避免逻辑错误
  • 确保使用的Meraki Python库是最新版本,避免API兼容性问题
  • 空列表调用pop()会报错,所以必须加非空判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:02:08