问题描述
我有一个嵌套的JSON
{
"ID": 300,"Name": " TEST","Value": [
{
"Details": [
{
"Name": "TEST1","Value": "XXXXXX"
},{
"Name": "TEST2","Value": "DDDDDDDD"
}
],"Time": [ 1600358400,1600358700,1600359000],"Values": [ 0,0]
}
]
}
我想展平json以便能够获得类似列表
我使用了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 (将#修改为@)