40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
import os
|
|
import re
|
|
import json
|
|
import pprint
|
|
|
|
TOKEN_REGEX = r"""(\d+)(-)(\d+)(\.)(.+)"""
|
|
TOKEN_REGEX2 = r"""(?:\|\s*)([^\s]*)(?:\s*)(?:\|\s*)([^\s]*)(?:\s*)(?:\|\s*)([^\s]*)(?:\s*)(?:\|\s*)([^\s]*)(?:\s*)"""
|
|
|
|
def md2csv(mdfile):
|
|
state = 0
|
|
log_dict = {}
|
|
curr_node = None
|
|
for line in open(mdfile).readlines():
|
|
match = re.match(TOKEN_REGEX, line)
|
|
if match:
|
|
logclass1, _, logclass2, _, title = match.groups()
|
|
state = 1
|
|
assert((logclass1 + '-' + logclass2) not in log_dict)
|
|
curr_node = {}
|
|
log_dict[logclass1 + '-' + logclass2] = curr_node
|
|
# print('')
|
|
# print(logclass1, logclass2, title)
|
|
continue
|
|
match2 = re.match(TOKEN_REGEX2, line)
|
|
if match2 and state == 1:
|
|
field1, field2, field3, field4 = match2.groups()
|
|
if field1[0] != '-' and field1 != '字段':
|
|
curr_node[field1.replace('\\', '')] = {
|
|
'short_name': field1.replace('\\', ''),
|
|
'en_name': field2.replace('\\', ''),
|
|
'desc': field4
|
|
}
|
|
# print(field1 + ',' + field2 + ',' + field3 + ',' + field4)
|
|
#end for
|
|
# pprint.pprint(log_dict)
|
|
print(json.dumps(log_dict, sort_keys=True, indent=4, separators=(',', ': ')))
|
|
|
|
md2csv('/root/opensource/doc/api说明/gamelog.md')
|