我需要创建JSON文件以反映Python / Django中的树结构。
我有两个选项 - 在创建树的每个节点时调用数据库或一次性从数据库中提取数据,然后创建树。我认为在每个节点上调用数千个数据的数据库将是一项缓慢的任务,因此决定先从数据库创建原始JSON数据,然后再创建JSON树。我从数据库[PostgreSQL]创建了原始JSON数据。原始JSON数据如下所示:
[{"Name": "Michael Andrew", "class": "A", "order": "B", "family": "C"}, {"Name": "John Belew", "class": "A", "order": "D", "family": "E"}, {"Name": "Warren Noah", "class": "F", "order": "G", "family": "H"}]
我希望从Django / Python中的上述数据生成以下JSON树:
{
"name": "jsontree",
"children":[
{
"name": "A",
"children": [
{
"name": "B",
"children": [
{
"name": "C",
"children": [
{
"name": "Michael Andrew"
}]
}]
},
{
"name": "D",
"children": [
{
"name": "E",
"children": [
{
"name": "John Belew"
}]
}]
}]
},
{
"name": "F",
"children": [
{
"name": "G",
"children": [
{
"name": "H",
"children": [
{
"name": "Warren Noah"
}]
}]
}]
}]
}
在Python中这样做的有效方法是什么?我听说django-mptt从数据库创建JSON树,但不知道它实际上是什么。
答案 0 :(得分:1)
要从数据库转储json文件,请使用python manage.py dumpdata
。使用--indent=2
将输出作为json tree
。如果您有一个名为 blog 的django应用程序,请运行以下命令:
python manage.py dumpdata blog --indent=2 > blog/blog.json
或django用户模型:
python manage.py dumpdata auth.User --indent=2 > user.json