[Python]PostgreSQL字典/JSON类型递归自展开
July 15th, 2019
No comments
PostgreSql 习惯上会将特殊数据类型的各个节点按字典/JSON类型存储
程序中需要获得完整的数据信息的时候,需要对这个节点进行自展开。
以下使用global id方式进行展开,一般适用于SQL+NoSQL结合的系统使用
import sys, os import numpy as np def get_object_by_gid(id): for dict in data["json"]: if dict["gid"] == id: return dict.copy() def self_exact_node(key): dict = get_object_by_gid(key) for k,v in dict.items(): if k == "sub_item" : item_arr = [] for id in v["gids"]: item_arr.append(self_exact_node(id)) v["item_arr"] = item_arr.copy() return dict def demo(): data_exact = data.copy() for d in data_exact["json"]: d = self_exact_node(d["gid"]) def main(): demo() if __name__ == '__main__’: sys.exit(main()) |
其他玩法
# Global ID方式 "gid": "大分类2:中分类2:子分类2", # 复合ID "id":{"l1_cat":"大分类1","l2_cat":"中分类2","l3_cat":"子分类2"} # 链表式 "chain":{"next_gid":"","pre_gid":"","head_gid":"","tail_gid":""} # 二叉树式 "btree":{"next_sibling":"","child":”"} |
Recent Comments