У меня есть таблица со структурой, подобной этой:
| itemID | parentFolderID | folderName
1 0 folderA
2 1 folderB
3 1 folderC
4 3 folderD
5 4 folderE
6 5 file.txt
Разработчику внешнего интерфейса необходимо, чтобы я создал файл JSON с иерархией, представляющей структуру папок, и выглядел следующим образом:
{"name": "folderA",
"itemID": "1",
"children":[
{ "name": "folderB",
"itemID": "2",
"children": []
},
{ "name": "folderC",
"itemID": "3",
"children": [
{ "name": "folderD",
"itemID": "4",
"children": [
{"name": "folderE",
"itemID": "5",
"children": [
{"name": "file.txt",
"itemID": "6"
},
]
}
]
}
]
}
]
}
Я совершенно новичок в базах данных и Python, и эта проблема немного серьезна для моего уровня квалификации.Я посмотрел в CTE, но это не доступно в MySql 5.6.Мне также сказали, что Python лучше справляется с этой задачей, чем пытаться выполнить ее в базе данных.
Я видел предложенные решения, но это либо JS, R, либо что-то еще.Может быть, это работает, но мой вопрос к Python;должен быть способ сделать это.
Как взять таблицу и преобразовать ее в структуру JSON?Спасибо.
Добавление структуры данных Python для запроса MySQL:
[{'assetID': 1,
'assetName': 'Study Name',
'assetTypeID': 2,
'assetStoreName': 'TEST TEMPLATE',
'parentAssetID': None},
{'assetID': 2, 'assetName': '1.json', 'assetTypeID': 1, 'parentAssetID': 1},
{'assetID': 3,
'assetName': 'Binder-IRB',
'assetTypeID': 2,
'assetStoreName': 'TEST TEMPLATE',
'parentAssetID': 1},
{'assetID': 4,
'assetName': 'Serverless Security Evaluation Criteria 2019.pdf',
'assetTypeID': 1,
'assetStoreName': 'TEST TEMPLATE',
'parentAssetID': 1},
{'assetID': 5,
'assetName': '1- IRB Approvals',
'assetTypeID': 2,
'assetStoreName': 'TEST TEMPLATE',
'parentAssetID': 3},
{'assetID': 6, 'assetName': '2-ICF', 'assetTypeID': 2, 'parentAssetID': 3},
{'assetID': 7,
'assetName': "3-Reports",
'assetTypeID': 2,
'assetStoreName': 'TEST TEMPLATE',
'parentAssetID': 3},
{'assetID': 8,
'assetName': 'sample resume.docx',
'assetTypeID': 1,
'assetStoreName': 'TEST TEMPLATE',
'parentAssetID': 5},
{'assetID': 9,
'assetName': 'Inactive ICFs',
'assetTypeID': 2,
'assetStoreName': 'TEST TEMPLATE',
'parentAssetID': 6}]