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

根据指定值过滤JSON字符串并提取对应键

根据IP值从JSON中提取对应网卡键的解决方案

给定如下格式不可控的JSON字符串:

{
  "lo": [
    "127.0.0.1",
    "::1"
  ],
  "ens5": [
    "10.77.23.18",
    "fe80::4dd:baff:fecb:ef91"
  ],
  "ens6": [
    "10.77.18.149",
    "fe80::445:b3ff:fe48:bd98"
  ]
}

需求是:输入一个IP值(比如fe80::4dd:baff:fecb:ef91),提取出对应的网卡键(比如ens5)。

实现思路

核心逻辑是:先将JSON字符串解析为字典结构,再遍历字典的键值对,检查目标IP是否存在于当前键对应的IP列表中,匹配成功则返回该键。

Python 示例代码

import json

# 原始JSON字符串(格式不可控不影响解析)
json_str = '''
{
  "lo": [
    "127.0.0.1",
    "::1"
  ],
  "ens5": [
    "10.77.23.18",
    "fe80::4dd:baff:fecb:ef91"
  ],
  "ens6": [
    "10.77.18.149",
    "fe80::445:b3ff:fe48:bd98"
  ]
}
'''

target_ip = "fe80::4dd:baff:fecb:ef91"
result = None

# 解析JSON为字典
network_data = json.loads(json_str)

# 遍历网卡和对应的IP列表
for interface, ips in network_data.items():
    if target_ip in ips:
        result = interface
        break  # 找到第一个匹配项就停止,若允许多匹配可去掉break

# 输出结果
print(result)  # 输出: ens5

额外处理场景

  • 如果存在多个网卡包含同一个IP,去掉代码中的break即可获取所有匹配的网卡键,结果可存入列表统一返回。
  • 如果目标IP不存在,result会保持None,可添加判断逻辑输出自定义提示信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:09:58