python 生成 树状结构
树状结构: 字典里只有一个键值对, key 为根, 值为一个列表, 列表里的某个或多个元素可以再进行分支(分支还是列表)
比如: 邮件的发件人, 收件人, 转发关系树状结构
forwarding_recp = re.compile(".*?发件人:(.*?);.*?发送时间:.*?收件人:(.*?)主题", re.S) def parse_addr(addr, split_str=','): l = [] if addr: for a in addr.split(split_str): l.append(utils.parseaddr(a)[1]) return l def gen_forwarding(con): # 参数是解析过后的邮件正文 re_ret = forwarding_recp.findall(con) forwarding = dict() for i in re_ret: from_addr = parse_addr(i[0])[0] to_addr = parse_addr(i[1], ";") del to_addr[-1] for k, v in forwarding.items(): forwarding.clear() to_addr.remove(k) to_addr.append({k: v}) forwarding[from_addr] = to_addr forwarding[from_addr] = to_addr return json.dumps(forwarding)