Json格式转为XMind思维导图

关于XMind转为Json、XML等格式的可以看下面这些链接

https://github.com/zhuifengshen/xmind
https://blog.csdn.net/weixin_33800593/article/details/88804838

但是关于Json转回XMind的轮子却没有,所以自己就写了一份。下面自取

# -*- coding: utf-8 -*-
import json
import xmind
import sys

def genXmindByJson(parent, data):
    if data is None:
        return
    node = parent.addSubTopic()
    for key in data:
        if key == 'title':
            print(data['title'])
            node.setTitle(data['title'])
        elif key == 'link':
            node.setURLHyperlink(data['link'])
        elif key == 'labels':
            node.addLabel(data['labels'][0])
        elif key == 'topic':
            node.setTitle(data['title'])
        elif key == 'topics':
            if isinstance(data['topics'], dict):
                genXmindByJson(node, data['topics'])
            elif isinstance(data['topics'], list):
                for i in range(len(data['topics'])):
                    genXmindByJson(node, data['topics'][i])
            else:
                print("其它类型")


def genJsonData(filename):
    with open(filename,'r', encoding='UTF-8') as f:
        data = json.load(f)
        return data

def genXmind(input):
    workbook = xmind.load("temp.xmind")
    sheet = workbook.getPrimarySheet()
    root = sheet.getRootTopic()
    root.setStructureClass = "org.xmind.ui.logic.right"
    genXmindByJson(root, genJsonData(input+'.json'))
    xmind.save(workbook, path=input+'.xmind')


if __name__ == '__main__':
    genXmind(sys.argv[1])
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值