Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
CSDN-技能森林
提交
551e2a18
C
CSDN-技能森林
项目概览
CSDN 技术社区
/
CSDN-技能森林
通知
2816
Star
149
Fork
162
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
21
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
6
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CSDN-技能森林
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
21
Issue
21
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
6
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
551e2a18
编写于
3月 30, 2022
作者:
F
feilong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
生成学习包和技能树索引
上级
cdc75010
变更
21
显示空白变更内容
内联
并排
Showing
21 changed file
with
539 addition
and
111 deletion
+539
-111
data/index.json
data/index.json
+242
-0
data/package/job/algo.json
data/package/job/algo.json
+13
-3
data/package/job/android.json
data/package/job/android.json
+3
-2
data/package/job/architecture.json
data/package/job/architecture.json
+16
-8
data/package/job/bi.json
data/package/job/bi.json
+36
-37
data/package/job/big_data.json
data/package/job/big_data.json
+19
-5
data/package/job/cpp.json
data/package/job/cpp.json
+16
-3
data/package/job/crawler.json
data/package/job/crawler.json
+14
-5
data/package/job/devops.json
data/package/job/devops.json
+13
-6
data/package/job/go_backend.json
data/package/job/go_backend.json
+17
-4
data/package/job/ios.json
data/package/job/ios.json
+15
-4
data/package/job/java_backend.json
data/package/job/java_backend.json
+4
-9
data/package/job/machine_vision.json
data/package/job/machine_vision.json
+19
-4
data/package/job/nlp.json
data/package/job/nlp.json
+17
-3
data/package/job/php.json
data/package/job/php.json
+21
-4
data/package/job/product.json
data/package/job/product.json
+7
-3
data/package/job/search.json
data/package/job/search.json
+17
-4
data/package/job/test.json
data/package/job/test.json
+9
-5
data/package/job/web.json
data/package/job/web.json
+2
-1
main.py
main.py
+2
-1
src/main/package.py
src/main/package.py
+37
-0
未找到文件。
data/index.json
0 → 100644
浏览文件 @
551e2a18
{
"jobs"
:
[
{
"name"
:
"C++工程师"
,
"level_name"
:
"入门"
,
"router"
:
"cpp_01"
},
{
"name"
:
"C++工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"cpp_02"
},
{
"name"
:
"Java后端工程师"
,
"level_name"
:
"入门"
,
"router"
:
"javabf_01"
},
{
"name"
:
"Java后端工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"javabf_02"
},
{
"name"
:
"Android工程师"
,
"level_name"
:
"入门"
,
"router"
:
"android_01"
},
{
"name"
:
"Android工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"android_02"
},
{
"name"
:
"运维工程师"
,
"level_name"
:
"入门"
,
"router"
:
"devops_01"
},
{
"name"
:
"运维工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"devops_02"
},
{
"name"
:
"搜索工程师"
,
"level_name"
:
"入门"
,
"router"
:
"search_01"
},
{
"name"
:
"搜索工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"search_02"
},
{
"name"
:
"爬虫工程师"
,
"level_name"
:
"入门"
,
"router"
:
"crawler_01"
},
{
"name"
:
"爬虫工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"crawler_02"
},
{
"name"
:
"Go后端工程师"
,
"level_name"
:
"入门"
,
"router"
:
"go_01"
},
{
"name"
:
"Go后端工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"go_02"
},
{
"name"
:
"机器视觉工程师"
,
"level_name"
:
"入门"
,
"router"
:
"machinevision_01"
},
{
"name"
:
"机器视觉工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"machinevision_02"
},
{
"name"
:
"测试工程师"
,
"level_name"
:
"入门"
,
"router"
:
"test_01"
},
{
"name"
:
"测试工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"test_02"
},
{
"name"
:
"BI 工程师"
,
"level_name"
:
"入门"
,
"router"
:
"bi_01"
},
{
"name"
:
"BI 工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"bi_02"
},
{
"name"
:
"PHP工程师"
,
"level_name"
:
"入门"
,
"router"
:
"php_01"
},
{
"name"
:
"PHP工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"php_02"
},
{
"name"
:
"前端工程师"
,
"level_name"
:
"入门"
,
"router"
:
"web_01"
},
{
"name"
:
"前端工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"web_02"
},
{
"name"
:
"iOS工程师"
,
"level_name"
:
"入门"
,
"router"
:
"ios_01"
},
{
"name"
:
"iOS工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"ios_02"
},
{
"name"
:
"后端构架师"
,
"level_name"
:
"入门"
,
"router"
:
"archit_01"
},
{
"name"
:
"后端构架师"
,
"level_name"
:
"进阶"
,
"router"
:
"archit_02"
},
{
"name"
:
"产品"
,
"level_name"
:
"入门"
,
"router"
:
"product_01"
},
{
"name"
:
"产品"
,
"level_name"
:
"进阶"
,
"router"
:
"product_02"
},
{
"name"
:
"大数据工程师"
,
"level_name"
:
"入门"
,
"router"
:
"bigdata_01"
},
{
"name"
:
"大数据工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"bigdata_02"
},
{
"name"
:
"自然语言处理工程师"
,
"level_name"
:
"入门"
,
"router"
:
"nlp_01"
},
{
"name"
:
"自然语言处理工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"nlp_02"
},
{
"name"
:
"运营"
,
"level_name"
:
"入门"
,
"router"
:
"operations_01"
},
{
"name"
:
"运营"
,
"level_name"
:
"进阶"
,
"router"
:
"operations_02"
},
{
"name"
:
"算法工程师"
,
"level_name"
:
"入门"
,
"router"
:
"algo_01"
},
{
"name"
:
"算法工程师"
,
"level_name"
:
"进阶"
,
"router"
:
"algo_02"
}
],
"trees"
:
[
"ai"
,
"algorithm"
,
"algorithm02"
,
"android"
,
"c"
,
"cassandra"
,
"cloud_native"
,
"cpp"
,
"devops"
,
"distrubute"
,
"flutter"
,
"gml"
,
"go"
,
"goplus"
,
"hadoop"
,
"java"
,
"k8s"
,
"kafka"
,
"mongodb"
,
"mq"
,
"mysql"
,
"neo4j"
,
"network"
,
"nginx"
,
"nlp"
,
"opencv"
,
"operation"
,
"operations"
,
"pg"
,
"php"
,
"product"
,
"python"
,
"python02"
,
"react"
,
"redis"
,
"rust"
,
"scala"
,
"search"
,
"spark"
,
"springboot"
,
"springcloud"
,
"swift"
,
"test"
,
"vue"
,
"web"
,
"weixin"
]
}
\ No newline at end of file
data/package/job/algo.json
浏览文件 @
551e2a18
...
...
@@ -10,10 +10,17 @@
"level_id"
:
"pkg-algo-level-1b8296e8c947421981ca1f4ea920878a"
,
"skill_trees"
:
[
"gml"
,
"c"
,
"algorithm"
,
"c"
"python"
,
"mysql"
],
"recommend_skill_trees"
:
[]
"recommend_skill_trees"
:
[
"gml"
,
"c"
,
"algorithm"
,
"python"
]
},
{
"level"
:
"02"
,
...
...
@@ -23,7 +30,10 @@
"python02"
,
"ai"
],
"recommend_skill_trees"
:
[],
"recommend_skill_trees"
:
[
"algorithm02"
,
"python02"
],
"level_id"
:
"pkg-algo-level-0e0f4c2d372c4be6a4954c1e8e29a3bc"
}
]
...
...
data/package/job/android.json
浏览文件 @
551e2a18
...
...
@@ -11,7 +11,8 @@
"skill_trees"
:
[
"gml"
,
"java"
,
"android"
"android"
,
"web"
],
"recommend_skill_trees"
:
[]
},
...
...
@@ -19,7 +20,7 @@
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[
"
react
"
,
"
vue
"
,
"weixin"
,
"flutter"
],
...
...
data/package/job/architecture.json
浏览文件 @
551e2a18
...
...
@@ -10,28 +10,36 @@
"level_id"
:
"pkg-archit-level-634117d27ab1492db3d6e973e122f8c3"
,
"skill_trees"
:
[
"gml"
,
"algorithm"
,
"network"
,
"java"
,
"devops"
,
"springboot"
,
"nginx"
,
"devops"
"mysql"
,
"redis"
,
"mq"
],
"recommend_skill_trees"
:
[]
"recommend_skill_trees"
:
[
"gml"
,
"network"
,
"pg"
,
"cloud_native"
]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[
"springboot"
,
"springcloud"
,
"mysql"
,
"pg"
,
"mongodb"
,
"distrubute"
,
"go"
,
"node.js"
,
"cloud_native"
],
"recommend_skill_trees"
:
[],
"recommend_skill_trees"
:
[
"pg"
,
"cloud_native"
],
"level_id"
:
"pkg-archit-level-ce6121fa7a9c4a58aa9852da2bac850f"
}
]
...
...
data/package/job/bi.json
浏览文件 @
551e2a18
...
...
@@ -11,12 +11,11 @@
"skill_trees"
:
[
"gml"
,
"python"
,
"algorithm"
,
"mysql"
],
"recommend_skill_trees"
:
[
"python02
"
,
"algorithm02
"
,
"gml
"
,
"python
"
,
"pg"
]
},
...
...
@@ -24,13 +23,13 @@
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[
"gml"
,
"python"
,
"algorithm"
"redis"
,
"pg"
,
"mongodb"
,
"hadoop"
,
"scala"
],
"recommend_skill_trees"
:
[
"python02"
,
"algorithm02"
,
"pg"
],
"level_id"
:
"pkg-bi-level-0046fafee14640c7b5aa29cc97b17a8a"
...
...
data/package/job/big_data.json
浏览文件 @
551e2a18
...
...
@@ -10,16 +10,30 @@
"level_id"
:
"pkg-bigdata-level-c208cec9d183455588265813fcdf56bd"
,
"skill_trees"
:
[
"gml"
,
"algorithm"
,
"java"
"python"
,
"mysql"
,
"redis"
,
"java"
,
"hadoop"
],
"recommend_skill_trees"
:
[]
"recommend_skill_trees"
:
[
"gml"
,
"python"
,
"java"
]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[],
"recommend_skill_trees"
:
[],
"skill_trees"
:
[
"scala"
,
"spark"
,
"kafka"
,
"cassandra"
],
"recommend_skill_trees"
:
[
"pg"
],
"level_id"
:
"pkg-bigdata-level-8e2a8fb109424596a667bcc613db93c1"
}
]
...
...
data/package/job/cpp.json
浏览文件 @
551e2a18
...
...
@@ -10,16 +10,29 @@
"level_id"
:
"pkg-cpp-level-6205ebd891544d8cadab543433b3b951"
,
"skill_trees"
:
[
"gml"
,
"c"
,
"algorithm"
,
"network"
,
"cpp"
],
"recommend_skill_trees"
:
[
"gml"
,
"c"
,
"algorithm"
,
"network"
],
"recommend_skill_trees"
:
[]
]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[],
"skill_trees"
:
[
"rust"
,
"go"
,
"devops"
,
"mysql"
,
"pg"
,
"redis"
],
"recommend_skill_trees"
:
[],
"level_id"
:
"pkg-cpp-level-0aef5db1bcca497789fbc1ab8863bd7d"
}
...
...
data/package/job/crawler.json
浏览文件 @
551e2a18
...
...
@@ -10,12 +10,18 @@
"level_id"
:
"pkg-crawler-level-2d99f3f4e3e3416092f46f8b901efae1"
,
"skill_trees"
:
[
"gml"
,
"python"
,
"algorithm"
,
"python"
,
"mysql"
,
"network"
"network"
,
"web"
],
"recommend_skill_trees"
:
[]
"recommend_skill_trees"
:
[
"gml"
,
"algorithm"
,
"python"
,
"network"
]
},
{
"level"
:
"02"
,
...
...
@@ -23,10 +29,13 @@
"skill_trees"
:
[
"python02"
,
"algorithm02"
,
"web"
,
"mysql"
],
"recommend_skill_trees"
:
[
"python02"
,
"algorithm02"
,
"pg"
],
"recommend_skill_trees"
:
[],
"level_id"
:
"pkg-crawler-level-6035cb39f6d14637810beaeb8fecb168"
}
]
...
...
data/package/job/devops.json
浏览文件 @
551e2a18
...
...
@@ -11,21 +11,28 @@
"skill_trees"
:
[
"gml"
,
"python"
,
"mysql"
"network"
,
"mysql"
,
"devops"
],
"recommend_skill_trees"
:
[
"devops"
,
"cloud_native"
,
"pg"
"gml"
,
"network"
]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[
"network02"
"pg"
,
"cloud_native"
,
"k8s"
],
"recommend_skill_trees"
:
[
"cloud_native"
,
"pg"
,
"k8s"
],
"recommend_skill_trees"
:
[],
"level_id"
:
"pkg-devops-level-5c902f5daeb44c96811e791e3bf1a90a"
}
]
...
...
data/package/job/go_backend.json
浏览文件 @
551e2a18
...
...
@@ -11,15 +11,28 @@
"skill_trees"
:
[
"gml"
,
"algorithm"
,
"network"
"network"
,
"go"
],
"recommend_skill_trees"
:
[]
"recommend_skill_trees"
:
[
"gml"
,
"algorithm"
,
"network"
]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[],
"recommend_skill_trees"
:
[],
"skill_trees"
:
[
"c"
,
"goplus"
,
"rust"
,
"cloud_native"
],
"recommend_skill_trees"
:
[
"c"
,
"cloud_native"
],
"level_id"
:
"pkg-go-level-d2faef92de2042e79f0cb16d3016c10c"
}
]
...
...
data/package/job/ios.json
浏览文件 @
551e2a18
...
...
@@ -8,14 +8,25 @@
"level"
:
"01"
,
"level_name"
:
"入门"
,
"level_id"
:
"pkg-ios-level-dd40b98b3ede4f738ac67b72b985b8b5"
,
"skill_trees"
:
[],
"recommend_skill_trees"
:
[]
"skill_trees"
:
[
"web"
,
"swift"
],
"recommend_skill_trees"
:
[
"java"
]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[],
"recommend_skill_trees"
:
[],
"skill_trees"
:
[
"vue"
,
"weixin"
,
"flutter"
],
"recommend_skill_trees"
:
[
"web"
],
"level_id"
:
"pkg-ios-level-17042027e678450f95732320c7ed023d"
}
]
...
...
data/package/job/java_backend.json
浏览文件 @
551e2a18
...
...
@@ -18,8 +18,7 @@
"recommend_skill_trees"
:
[
"gml"
,
"algorithm"
,
"java"
,
"springboot"
"java"
]
},
{
...
...
@@ -27,17 +26,13 @@
"level_name"
:
"进阶"
,
"level_id"
:
"pkg-javabf-level-91f3e6a6f5624acfb422f3951177cb6e"
,
"skill_trees"
:
[
"gml"
,
"algorithm"
,
"java"
,
"springboot"
,
"mysql"
"springcloud"
,
"pg"
],
"recommend_skill_trees"
:
[
"gml"
,
"algorithm"
,
"java"
,
"springboot"
"java"
]
}
]
...
...
data/package/job/machine_vision.json
浏览文件 @
551e2a18
...
...
@@ -11,15 +11,30 @@
"skill_trees"
:
[
"gml"
,
"algorithm"
,
"c"
"c"
,
"python"
,
"opencv"
],
"recommend_skill_trees"
:
[]
"recommend_skill_trees"
:
[
"gml"
,
"algorithm"
,
"c"
,
"python"
,
"opencv"
]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[],
"recommend_skill_trees"
:
[],
"skill_trees"
:
[
"python02"
,
"nlp"
,
"neo4j"
],
"recommend_skill_trees"
:
[
"python02"
,
"neo4j"
],
"level_id"
:
"pkg-machinevision-level-bbcc2444f218474aa445df6ca08c5cfb"
}
]
...
...
data/package/job/nlp.json
浏览文件 @
551e2a18
...
...
@@ -10,15 +10,29 @@
"level_id"
:
"pkg-nlp-level-5317f0fbf4414d87b6d028e421d16396"
,
"skill_trees"
:
[
"gml"
,
"algorithm"
"algorithm"
,
"python"
,
"python02"
],
"recommend_skill_trees"
:
[]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[],
"recommend_skill_trees"
:
[],
"skill_trees"
:
[
"nlp"
,
"opencv"
,
"neo4j"
,
"spark"
,
"mysql"
,
"redis"
,
"pg"
],
"recommend_skill_trees"
:
[
"opencv"
,
"neo4j"
,
"pg"
],
"level_id"
:
"pkg-nlp-level-4f5c84c95f26440393a69a4181d03a65"
}
]
...
...
data/package/job/php.json
浏览文件 @
551e2a18
...
...
@@ -8,14 +8,31 @@
"level"
:
"01"
,
"level_name"
:
"入门"
,
"level_id"
:
"pkg-php-level-c8c35ceafdc447198f15f628a745699f"
,
"skill_trees"
:
[],
"recommend_skill_trees"
:
[]
"skill_trees"
:
[
"gml"
,
"web"
,
"php"
,
"mysql"
],
"recommend_skill_trees"
:
[
"gml"
,
"pg"
]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[],
"recommend_skill_trees"
:
[],
"skill_trees"
:
[
"go"
,
"java"
,
"springboot"
,
"pg"
,
"mongodb"
],
"recommend_skill_trees"
:
[
"java"
,
"pg"
],
"level_id"
:
"pkg-php-level-3a99b53332c9429b8f32669e74ab9f35"
}
]
...
...
data/package/job/product.json
浏览文件 @
551e2a18
...
...
@@ -11,15 +11,19 @@
"skill_trees"
:
[
"product"
],
"recommend_skill_trees"
:
[]
"recommend_skill_trees"
:
[
"se"
]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[
"se"
"operation"
],
"recommend_skill_trees"
:
[
"se02"
],
"recommend_skill_trees"
:
[],
"level_id"
:
"pkg-product-level-995424592df44bc99c88233f341bde94"
}
]
...
...
data/package/job/search.json
浏览文件 @
551e2a18
...
...
@@ -12,17 +12,30 @@
"gml"
,
"algorithm"
,
"java"
,
"search"
"search"
,
"python"
,
"mysql"
],
"recommend_skill_trees"
:
[]
"recommend_skill_trees"
:
[
"gml"
,
"algorithm"
,
"java"
,
"python"
]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[
"elastic"
"python02"
,
"nlp"
,
"pg"
,
"redis"
],
"recommend_skill_trees"
:
[
"python02"
,
"pg"
],
"recommend_skill_trees"
:
[],
"level_id"
:
"pkg-search-level-e3ddce54bc304fc290a76a437fd4791c"
}
]
...
...
data/package/job/test.json
浏览文件 @
551e2a18
...
...
@@ -10,20 +10,24 @@
"level_id"
:
"pkg-test-level-8207808da42c4869b7235e0df8e88a72"
,
"skill_trees"
:
[
"gml"
,
"web"
,
"python"
,
"
gml
"
"
test
"
],
"recommend_skill_trees"
:
[]
"recommend_skill_trees"
:
[
"gml"
,
"python"
]
},
{
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[
"java"
"web"
,
"mysql"
,
"devops"
],
"recommend_skill_trees"
:
[
"
network02
"
"
pg
"
],
"level_id"
:
"pkg-test-level-85e8c4269c4f4e23b6012ebc8d31e05f"
}
...
...
data/package/job/web.json
浏览文件 @
551e2a18
...
...
@@ -19,8 +19,9 @@
"level"
:
"02"
,
"level_name"
:
"进阶"
,
"skill_trees"
:
[
"weixin"
,
"react"
,
"
weixin
"
"
flutter
"
],
"recommend_skill_trees"
:
[],
"level_id"
:
"pkg-web-level-7d906e7132dd43438cd70216f697999e"
...
...
main.py
浏览文件 @
551e2a18
...
...
@@ -2,4 +2,5 @@ from src.main.package import Package
if
__name__
==
'__main__'
:
p
=
Package
(
'data/package/'
)
p
.
walk
()
# p.walk()
p
.
list
()
src/main/package.py
浏览文件 @
551e2a18
...
...
@@ -28,3 +28,40 @@ class Package:
if
level
.
get
(
'level_id'
)
is
None
or
level
.
get
(
'level_id'
)
==
''
:
level
[
'level_id'
]
=
f
'pkg-
{
pacakge
}
-level-'
+
uuid
.
uuid4
().
hex
dump_json
(
file_full_name
,
pkg
,
exist_ok
=
True
,
override
=
True
)
def
list
(
self
):
pkg_list
=
[]
tree_list
=
[]
for
base
,
dirs
,
files
in
os
.
walk
(
self
.
root
):
for
file_name
in
files
:
file_full_name
=
os
.
path
.
join
(
base
,
file_name
)
_
,
ext
=
os
.
path
.
splitext
(
file_name
)
if
ext
==
'.json'
:
print
(
file_full_name
)
pkg
=
load_json
(
file_full_name
)
if
pkg
.
get
(
'type'
)
==
'job'
:
self
.
list_package
(
file_full_name
,
pkg
,
pkg_list
,
tree_list
)
out
=
{
'jobs'
:
pkg_list
,
'trees'
:
sorted
(
list
(
set
(
tree_list
)))
}
dump_json
(
'data/index.json'
,
out
,
exist_ok
=
True
,
override
=
True
)
def
list_package
(
self
,
file_full_name
,
pkg
,
pkg_list
,
tree_list
):
package
=
pkg
[
'package'
]
package_name
=
pkg
[
'package_name'
]
levels
=
pkg
[
'levels'
]
for
level
in
levels
:
level_en
=
level
[
'level'
]
level_name
=
level
[
'level_name'
]
skill_trees
=
level
[
'skill_trees'
]
package_level
=
f
'
{
package
}
_
{
level_en
}
'
pkg_list
.
append
({
'name'
:
package_name
,
'level_name'
:
level_name
,
'router'
:
package_level
})
for
skill_tree
in
skill_trees
:
tree_list
.
append
(
skill_tree
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录