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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM