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

如何将带点分隔键的字典转换为嵌套JSON?

将带点分隔键的字典转换为嵌套JSON结构

没问题,这需求太常见了,我来给你一个实用的解决方案!核心思路就是把每个带点的键拆分成层级路径,逐步构建嵌套字典,最后转成JSON就行。

实现步骤(以Python为例)

服务器端生成数据包用Python很顺手,我就用Python写示例:

  1. 导入json模块,用来最终生成JSON字符串
  2. 写个辅助函数,把带点的键值对转换成嵌套字典
  3. 遍历原始字典,把每个键值对处理后合并到结果字典
  4. 最后把结果字典转成格式化的JSON

完整代码示例

import json

def flatten_to_nested(flat_dict):
    nested_dict = {}
    for key, value in flat_dict.items():
        # 把键按点分割成层级列表
        keys = key.split('.')
        current = nested_dict
        # 遍历层级(除最后一个键),逐步创建嵌套字典
        for k in keys[:-1]:
            if k not in current:
                current[k] = {}
            current = current[k]
        # 把值赋给最底层的键
        current[keys[-1]] = value
    return nested_dict

# 你的原始字典
original_dict = {
    "device.name": "Machine-39FK394S",
    "device.username": "admin",
    "device.operating_system": "Windows 10",
    "something.else": 294
}

# 转换为嵌套字典
nested_result = flatten_to_nested(original_dict)
# 转成格式化的JSON字符串
json_output = json.dumps(nested_result, indent=4)

print(json_output)

输出结果

运行代码后,你会得到完全符合预期的嵌套JSON:

{
    "device": {
        "name": "Machine-39FK394S",
        "username": "admin",
        "operating_system": "Windows 10"
    },
    "something": {
        "else": 294
    }
}

这个方法特别灵活,哪怕你的键有更多层级(比如"a.b.c.d")也能轻松处理,逻辑清晰还容易修改。要是你服务器用的是Java、Go这类语言,思路也是一样的:拆分键的层级,递归或循环构建嵌套结构,最后序列化JSON就好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:44:17