zoukankan      html  css  js  c++  java
  • 博客园-评论树

     

    评论数据的处理

    我们可以取到的评论数据形式

    复制代码
    comment_list=[
    
        {"id":1,"content":"111","Pid":None},
        {"id":2,"content":"222","Pid":None},
        {"id":3,"content":"333","Pid":None},
        {"id":4,"content":"444","Pid":1},
        {"id":5,"content":"555","Pid":1},
        {"id":6,"content":"666","Pid":4},
        {"id":7,"content":"777","Pid":3},
        {"id":8,"content":"888","Pid":7},
        {"id":9,"content":"999","Pid":None},
    
    ]
    复制代码

    首先,给每条数据添加一个children_list(空列表)

    for i in comment_list:
        i["children_list"] = []

    得到新的列表

    复制代码
    comment_list = [
        {'id': 1, 'content': '111', 'Pid': None, 'children_list': []},
        {'id': 2, 'content': '222', 'Pid': None, 'children_list': []},
        {'id': 3, 'content': '333', 'Pid': None, 'children_list': []},
        {'id': 4, 'content': '444', 'Pid': 1, 'children_list': []},
        {'id': 5, 'content': '555', 'Pid': 1, 'children_list': []},
        {'id': 6, 'content': '666', 'Pid': 4, 'children_list': []},
        {'id': 7, 'content': '777', 'Pid': 3, 'children_list': []},
        {'id': 8, 'content': '888', 'Pid': 7, 'children_list': []},
        {'id': 9, 'content': '999', 'Pid': None, 'children_list': []}
    ]
    复制代码

    然后通过变量引用的方法将子评论的内容加到对应的跟评论中

    复制代码
    ret = []
    for i in comment_list:
        if i["Pid"]:
            for j in comment_list:
                if j["id"] == i["Pid"]:
                    j["children_list"].append(i)
        else:
            ret.append(i)
    复制代码

    得到了我们需要的结果ret

    复制代码
    ret = [
        {'id': 1, 'content': '111', 'Pid': None, 'children_list': [{'id': 4, 'content': '444', 'Pid': 1, 'children_list': [{'id': 6, 'content': '666', 'Pid': 4, 'children_list': []}]}, {'id': 5, 'content': '555', 'Pid': 1, 'children_list': []}]},
        {'id': 2, 'content': '222', 'Pid': None, 'children_list': []},
        {'id': 3, 'content': '333', 'Pid': None, 'children_list': [{'id': 7, 'content': '777', 'Pid': 3, 'children_list': [{'id': 8, 'content': '888', 'Pid': 7, 'children_list': []}]}]},
        {'id': 9, 'content': '999', 'Pid': None, 'children_list': []}
    ]
    
    # 结论:一旦某个数据引用了一个可变数据类型,这个可变数据类型发生变化,则这个数据也会发生变化
  • 相关阅读:
    "Login failed for user 'NT AUTHORITYSYSTEM'. 原因: 无法打开明确指定的数据库。"异常处理
    Windows 服务器自动重启定位
    扩展数据组码和说明
    C# CAD二次开发 扩展数据的几个重要方法
    CAD二次开发 eLockViolation 错误解决方法
    看kean 博客---- CAD.NET
    一个GIS研究生的自白
    C# 调用CAD系统命令
    <转载>Win32控制台工程中创建窗口
    <转载>无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
  • 原文地址:https://www.cnblogs.com/QQ279366/p/8488532.html
Copyright © 2011-2022 走看看