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

如何使用Python提取JSON文件中的二级键并存储为列表?

提取JSON二级键并存入列表的Python实现

嘿,这事儿不难,我给你捋清楚怎么用Python搞定这个需求!首先咱们得明确:这里的“二级键”指的是一级键对应的值(字典类型)里的键,比如你提到的uid、passid这些。下面分两种常见场景给你示例代码:

场景1:从JSON文件读取数据

如果你的JSON数据存在本地文件里,用这个方法:

import json

# 第一步:加载JSON文件里的数据
with open('your_json_file.json', 'r', encoding='utf-8') as file:
    json_data = json.load(file)

# 第二步:收集所有二级键
secondary_keys = []
for level1_value in json_data.values():
    # 先判断一级值是不是字典,避免遇到非字典类型报错
    if isinstance(level1_value, dict):
        # 把当前二级字典的键添加到列表里
        secondary_keys.extend(level1_value.keys())

# 可选:如果需要去重(不同一级键下可能有重复的二级键)
# 方法1:用集合去重(会打乱顺序)
unique_keys = list(set(secondary_keys))
# 方法2:保持顺序的去重(Python3.7+可用)
unique_keys_ordered = list(dict.fromkeys(secondary_keys))

# 输出结果
print("所有二级键(含重复):", secondary_keys)
print("去重后的二级键(顺序随机):", unique_keys)
print("去重后的二级键(保持首次出现顺序):", unique_keys_ordered)

场景2:直接处理Python字典(JSON已转成字典)

如果你的JSON数据已经在代码里转成了Python字典,直接这样操作:

# 假设这是你的JSON转成的Python字典示例
json_data = {
    "authentication": {
        "uid": "user_2024",
        "passid": "pass_123abc"
    },
    "interface": {
        "signbuttonid": "btn_submit",
        "logoIcon": "app_logo.svg"
    },
    "extra": "这是一个非字典的一级值,会被跳过"
}

secondary_keys = []
for val in json_data.values():
    # 只处理字典类型的一级值
    if isinstance(val, dict):
        secondary_keys += val.keys()

# 去重并保持顺序
final_keys = list(dict.fromkeys(secondary_keys))
print("提取到的二级键:", final_keys)

关键说明

  • 用json.load()可以把JSON文件转成Python字典,方便后续操作;
  • isinstance(val, dict)这个判断很重要,能避免当一级值是列表、字符串等非字典类型时抛出错误;
  • 如果不需要去重,直接用secondary_keys列表就行;要是需要去重,根据是否要保留顺序选择对应的方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:19:29