【问题标题】:How to save the elements of multidimensional list in nested json in python如何在python的嵌套json中保存多维列表的元素
【发布时间】:2018-05-31 11:02:58
【问题描述】:

我有一个如下所示的多维列表:

[
   ['Name1','5','6','7'],
   ['Name2','3','8','5'],
]

如您所见,在上面的多维列表中,我们有两个具有两个名称及其值的列表。这是由一种算法生成的,该算法可以生成更多名称,例如 4 个名称,因此,多维列表中可能有 4 个列表。

基于此,我必须将上述信息保存在 json 中,如下所示:

{
    "id": "id",
    "Values": [
        {
            "Name": "Name1",
            "X": "85",
            "Y": "78",
            "Z": "10"
        },
        {
            "Name": "Name2",
            "X": "85",
            "Y": "78",
            "Z": "10"
        }

    ]
}

所以所有的名字都会在['Values']['Name'] 后面跟着整数,但我对如何在 json 中保存列表项感到困惑,因为它不固定。谁能帮我解决这个问题。

谢谢

【问题讨论】:

    标签: python json python-3.x list


    【解决方案1】:

    使用列表推导:

    L = [['Name1','5','6','7'],
         ['Name2','3','8','5']]
    
    keys = ('Name', 'X', 'Y', 'Z')
    
    d = {**{'id': 'id'},
         **{'Values': [dict(zip(keys, i)) for i in L]}}
    

    结果

    print(d)
    
    {'Values': [{'Name': 'Name1', 'X': '5', 'Y': '6', 'Z': '7'},
                {'Name': 'Name2', 'X': '3', 'Y': '8', 'Z': '5'}],
     'id': 'id'}
    

    说明

    • 语法{**d1, **d2} 用于组合两个字典。
    • dict(zip(keys, i)) 创建一个字典,将keys 中的项目映射到i 的元素,按索引对齐。
    • 列表推导用于迭代 L 中的子列表。

    【讨论】:

    • 非常感谢。但是你能解释一下吗。我没有得到你在代码中所做的事情
    • @SAndrew,当然,我已经添加了解释。
    猜你喜欢
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2011-01-25
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多