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

如何遍历字典提取IDF值并生成动态Tabs标签代码?

解决方案

你的现有代码有几个明显问题:

  • 硬编码了IDF01的判断逻辑,无法自动识别其他IDF条目
  • 每次循环都会重置createTabs变量,根本没实现内容追加
  • 冗余的ast.literal_eval(json.dumps(dataDic))操作,json.loads已经能直接解析出字典,完全没必要多此一举

下面是修正后的完整实现:

import json

# 读取并解析字典文件
with open("data-dic.txt", 'r') as f:
    data_dic = json.load(f)

# 提取所有IDF编号
idf_list = []
for device_details in data_dic.values():
    # 每个设备的格式是[[品牌, IDF编号]],直接取第一个子列表的第二个元素
    idf_num = device_details[0][1]
    idf_list.append(idf_num)

# 对IDF编号排序,保证输出顺序稳定(新增条目后也能按数字排序)
idf_list.sort()

# 生成符合要求的标签字符串
label_items = []
for idf in idf_list:
    # 转小写作为键,原编号作为值,拼接成"idf0x=IDF0x"格式
    label_items.append(f"{idf.lower()}={idf}")
labels_str = ", ".join(label_items)

# 生成最终的Tabs标签代码
tabs_code = f"{{{{tabs labels=\"{labels_str}\"/}}}}"
print(tabs_code)

关键说明

  • 直接用json.load()读取解析文件,比先读文本再loads更简洁高效
  • 遍历字典的values(),无需关心设备的键名(device1/device2这类),扩展性更强
  • 用sort()对IDF编号排序,避免新增条目后输出顺序混乱
  • 用join()方法拼接所有标签项,自动实现内容追加,新增IDF04时会自动加入结果

比如当字典新增"device4": [["Cisco", "IDF04"]]后,输出会自动变成:

{{tabs labels="idf01=IDF01, idf02=IDF02, idf03=IDF03, idf04=IDF04"/}}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:31:05