【问题标题】:Create JSON tree from database in Django在 Django 中从数据库创建 JSON 树
【发布时间】:2014-06-05 18:40:10
【问题描述】:

我需要创建 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 树,但不知道它到底是什么。

【问题讨论】:

  • 查询然后json.dumps官方文档的更多信息(关于json你可以在python文档中找到)
  • 欢迎来到 Stack Overflow!告诉人们what you have tried 总是很重要的,包括任何失败的尝试,包括 sn-ps,以便他们了解您错过了哪些途径。这很重要,因为它会激发人们回答问题,而且它很重要,因为它可以更容易提供高质量、相关的答案。就问题的当前状态而言,这还没有实现。如果您编辑问题,则可能会阻止问题被关闭,并且您获得的答案的数量、质量和清晰度也会有所提高。

标签: python django postgresql


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-12-23
    • 1970-01-01
    • 2012-05-15
    • 2015-08-02
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    • 2011-07-01
    • 2013-09-28
    相关资源
    最近更新 更多