拼合JSON /字典/列表

问题描述

我有一个嵌套的JSON

{
    "ID": 300,"Name": " TEST","Value": [
        {
            "Details": [
                {
                    "Name": "TEST1","Value": "XXXXXX"
                },{
                    "Name": "TEST2","Value": "DDDDDDDD"
                }
            ],"Time": [ 1600358400,1600358700,1600359000],"Values": [ 0,0]
        }
    ]
}

我想展平json以便能够获得类似列表

enter image description here

我使用了itertools groupby,但是无法达到预期的结果。它正在水平展平。

到目前为止我尝试过的代码

from itertools import groupby
import json

def myflatten(d,depth=0):
    rv = [({},depth)]
    if isinstance(d,dict):
        for k,v in d.items():
            if not isinstance(v,dict) and not isinstance(v,list):
                for i in rv:
                    i[0][k] = v
            else:
                for (vv,_depth) in myflatten(v,depth+1):
                    rv.append((rv[-1][0].copy(),_depth))
                    for kkk,vvv in vv.items():
                        rv[-1][0][kkk] = vvv
    elif isinstance(d,list):
        for v in d:
            rv.append((rv[-1][0].copy(),depth+1))
            for (vv,_) in myflatten(v,depth+1):
                for kkk,vvv in vv.items():
                    rv[-1][0][kkk] = vvv
    for i,_depth in rv:
        yield i,_depth

out = []

a = {
    "ID": 300,0]
        }
    ]
}

for v,g in groupby(sorted(myflatten(a),key=lambda k: -k[1]),lambda k: k[1]):
    out.extend(i[0] for i in g)
    break
print(out)

有人可以帮助垂直而不是水平拉平嵌套的json / dict / list吗?最终目标是能够将数据存储在RDBMS中,而不必无限增加列数,而不必增加行数。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)