【发布时间】:2020-06-15 00:03:06
【问题描述】:
假设我有一个 DataFrame df,例如:
source tables columns data_type length
src1 table1 col1 INT 4
src1 table1 col2 CHAR 2
src1 table2 col1 CHAR 2
src2 table1 col1 INT 4
src2 table1 col2 DATE 3
注意:DataFrame 还有另外 4 列与问题无关
需要一个类似于以下内容的输出:
{
"src1": {
"table1": {
"col1": {
"type": "INT"
"length": 4
},
"col2": {
"type": "CHAR"
"length": 2
}
},
"table2": {
"col1": {
"type": "CHAR"
"length": 2
}
}
},
"src2": {
"table1": {
"col1": {
"type": "INT"
"length": 4
},
"col2": {
"type": "DATE"
"length": 3
}
}
}
}
我目前拥有的代码产生与上面相同的输出,但不包括实际数据类型值(即,我得到的是"type": "",而不是"type": ""),因为我不确定我是怎么做到的d 能够相应地嵌套值。代码如下:
def make_nested(df):
f = lambda: defaultdict(f)
data = f()
for row in df.to_numpy().tolist():
t = data
for r in row[:-6]:
t = t[r]
t[row[-6]] = {
"type": '',
"length": ''
}
return data
我的问题是如何在不牺牲确切格式的情况下正确地将 data_type 和 length 列值附加到每个 columns JSON 对象中?谢谢。
【问题讨论】:
标签: python json pandas dataframe