如何把markdown的文章大綱解析為json格式

 def parse_markdown(self, markdown_text, title):
        self.logger.info(markdown_text)
        print(markdown_text)
        result = {"result": []}
        children = result["result"]
        current_level = 0
        lines = markdown_text.split('\n')

        for line in lines:
            # 使用正則表達式匹配 Markdown 標題

            match = re.match(r'^(#{2,})\s+(.*)$', line.strip())
            if match:
                level = len(match.group(1))
                _title = match.group(2)
                if _title in title:
                    continue
                # 調整層級
                if current_level >= level:
                    children = result["result"]
                    for _ in range(level-2):
                        children = children[-1]["children"]
                # 添加新標題
                new_title = {"title": _title, "children": []}
                children.append(new_title)
                children = new_title["children"]
                current_level = level
        result = {"title": title, "children": result["result"]}
        return json.dumps(result,  ensure_ascii=False)

if __name__ == '__main__':
    res = llm_base_qa_outline_service.parse_markdown('''
# 月船三號任務分析
     ## 任務背景
     ## 任務目標
     ## 任務執(zhí)行情況
     ### 任務準備工作
     ### 任務執(zhí)行過程
     ### 任務結果分析
     ## 任務意義與影響
     ## 啟示建議
     ### 加強月球探測技術研究與應用
     ### 推動國際合作,共同探索月球資源
     ### 提高月球探測任務的可持續(xù)性
     ## 參考文獻''',
 "月船三號任務結果分析")
    print(res)
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容