Предположим, у меня есть 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
}
}
}
}
Код, который у меня есть в настоящее время, выдает тот же вывод, что и выше, за исключением фактических значений типа данных (ie. вместо "type": "CHAR"
, я получаю "type": ""
) поскольку я не уверен, каким образом я смогу соответственно вложить значения. Вот код:
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, не жертвуя точным форматом? Благодаря.