当前位置: 首页 > news >正文

北京邮电大学电子工程学院研招网成都网站优化

北京邮电大学电子工程学院研招网,成都网站优化,把自己做的网页变成网站,滨州做网站建设原始数据和处理结果: https://gitcode.net/as604049322/blog_data/-/tree/master/mdx 下载help.mdx词典后,我们无法直接查看,我们可以使用readmdict库来完成对mdx文件的读取。 安装库: pip install readmdict对于Windows平台还…

原始数据和处理结果:

https://gitcode.net/as604049322/blog_data/-/tree/master/mdx

下载help.mdx词典后,我们无法直接查看,我们可以使用readmdict库来完成对mdx文件的读取。

安装库:

pip install readmdict

对于Windows平台还需要安装python-lzo:

pip install python-lzo

使用Python读取的示例:

from readmdict import MDXmdx_file = "help.mdx"
mdx = MDX(mdx_file, encoding='utf-8')
items = mdx.items()
for key, value in items:word = key.decode().strip()print(word, value.decode())break
a <link type="text/css" rel="stylesheet" href="jsmind.css"><script type="text/javascript" src="jsmind.js"></script><p id="jsmind_describe"></p><p id="jsmind_container"></p><script>jsMind.show({},{"meta":{"name":"etymology","version":"0.1"},"format":"node_array","data":[{"id":"a","isroot":true,"topic":"a","describe":"英[ə; eɪ]美[ə; e]art. 一"}]});document.getElementById('jsmind_container').style.height=document.querySelector('jmnodes').style.height;</script>

可以看到,词典详情数据以JavaScript脚本形式存在,我们可以使用正则+json进行解析:

import rejson.loads(re.findall('"data":(\[.+\])}\);', value.decode())[0])
[{'id': 'a','isroot': True,'topic': 'a','describe': '英[ə; eɪ]美[ə; e]art. 一'}]

当然这只是最简单的一种情况,下面我们看看一个存在树形关系的单词的例子:

from readmdict import MDX
import remdx_file = "help.mdx"
mdx = MDX(mdx_file, encoding='utf-8')
items = mdx.items()
for key, value in items:word = key.decode().strip()topic = json.loads(re.findall('"data":(\[.+\])}\);', value.decode())[0])if word == "abalienate":print(word, topic)break
abalienate [{'id': 'abalienate', 'isroot': True, 'topic': 'abalienate', 'describe': "英[æb'eiljəneit]美[æb'eiljəneit]【法】 让渡, 转移, 让出"}, {'id': 'ab-', 'parentid': 'abalienate', 'direction': 'left', 'topic': 'ab-', 'describe': '表示从,来自(from);从...离开,离开(away from, sway, off);不,非,表否定(not, opposite)。在字母v 前缩略成a-,在字母c, t 前扩展为abs-。来自拉丁介词ab。'}, {'id': 'alienate', 'parentid': 'abalienate', 'direction': 'left', 'topic': 'alienate', 'describe': "英['eɪlɪəneɪt]vt. 使疏远, 离间, 转让\n【第三人称单数:alienates;现在分词:alienating;过去式:alienated】"}, {'id': 'alien', 'parentid': 'alienate', 'direction': 'left', 'topic': 'alien', 'describe': "英['eɪlɪən]美[ˈeliən,ˈeljən]n. 外国人, 外侨\na. 外国的, 相异的\n【复数:aliens;现在分词:aliening;过去分词:aliened】"}, {'id': '-ate', 'parentid': 'alienate', 'direction': 'left', 'topic': '-ate', 'describe': [['表动词,“做,造成”。']]}, {'id': 'ali-', 'parentid': 'alien', 'direction': 'left', 'topic': 'ali-', 'describe': [['= other, to change, 表示“其他的,改变状态”,来源于拉丁语 alius "another, other, different."']]}, {'id': '-en', 'parentid': 'alien', 'direction': 'left', 'topic': '-en', 'describe': [['表名词,“人或物”,有时构成小词或昵称。']]}]

同时我们可以看到有部分词的描述可能会嵌套列表。

下面我们的目标是将每个单词都处理成如下形式:

最终的完整代码为:

from readmdict import MDX
import re
import json
import csvdef get_describe(describe):if isinstance(describe, (list, tuple)):return ';'.join(get_describe(i) for i in describe)else:return describedef deal_node(node, result=[], num=-1):chars = "■□◆▲●◇△○★☆"for k, (d, cs) in node.items():if num >= 0:d = d.replace('\n', '')result.append(f"{'    '*num}{chars[num]} {k}: {d}")if cs:deal_node(cs, result, num+1)def get_row(topic):id2children = {}root = {}for d in topic:node = id2children.get(d.get("parentid"), root)tmp = {}node[d['id']] = (get_describe(d['describe']), tmp)id2children[d['id']] = tmpname, (describe, _) = list(root.items())[0]txts = []deal_node(root, txts)other = "\n".join(txts)return name, describe, othermdx_file = "help.mdx"
mdx = MDX(mdx_file, encoding='utf-8')
items = mdx.items()
data = []
for key, value in items:word = key.decode().strip()topic = json.loads(re.findall('"data":(\[.+\])}\);', value.decode())[0])name, describe, other = get_row(topic)data.append((name, describe, other))with open(mdx_file.replace('.mdx', '-UTF8 .csv'), 'w', newline='', encoding='u8') as f:cw = csv.writer(f, delimiter=',')cw.writerow(["单词", "释义", "扩展"])cw.writerows(data)
http://www.yidumall.com/news/72659.html

相关文章:

  • 网络公司排名及利润长春seo公司哪家好
  • 东莞网站建设aj站长论坛
  • 制作公司网站的费用广州市口碑全网推广报价
  • 做的网站上传到服务器西安网是科技发展有限公司
  • 在门户网站中营销者通过制作什么武汉seo优化
  • 做网站时如何将前端连接到后台百度推广登录后台登录入口
  • 电商网站建设实训总结ciliba最佳磁力搜索引擎
  • 中国建设银行网站e路免费做网站软件
  • 重庆网站建设公司怎么做云优客seo排名公司
  • 怎么建网站 手机版北京优化seo公司
  • 网站建设dw站点建设合肥网络推广优化公司
  • 东莞市建设质量监督网站seo研究中心怎么了
  • 网站建设网站建设云搜索app下载
  • e福州app官方下载seo网站关键词优化方式
  • 餐饮营销型网站案例b站在线观看人数在哪
  • 高端网站建设 骆诗百度竞价点击价格
  • 网上投资项目的平台有哪些个人如何优化网站有哪些方法
  • 微信网站建设合同网站和网页的区别
  • 会同县做网站软媒win7优化大师
  • 晚上免费b站软件长春网站建设制作
  • 网站开发人员工作内容游戏推广员如何推广引流
  • 政府做网站线上营销方式
  • 网络营销的50种方法百度首页排名优化平台
  • ucloud网站开发网络媒体发稿
  • 合肥浦发建设集团网站热搜榜百度
  • 长沙做php的网站建设新闻最新消息
  • 响应式网站建设需要注意什么seo网络优化师招聘
  • 做网站需要啥seo成功的案例和分析
  • 做网站要的软件图片外链在线生成
  • 北京品牌设计公司aso优化怎么做