汉字数据库

kanjidb的Python项目详细描述


坎吉德布

versionsPyPI versionBuild StatusDocumentation StatusCircleCITest CoverageCode style: blackcontributions welcome

汉字数据库生成器和restapi。在

汉字数据库旨在通过编译帮助您建立自己的汉字数据库 将来自各种现有源的信息放入单个JSON文件中。 它的插件系统让你编写自己的插件来收集和添加新的数据到kanjis, 或者安排已经编写好的插件来满足您的需求。这是目标 就是要有足够的灵活性让你把你所有的信息都输出出去 需要建立自己的应用程序(数据库,查看器,Anki deck builder,…)和 学习日语的进步。KanjiDB还附带了一个restapi,允许 检索这些信息并建立服务upon。在

在线演示

您可以在kanjidb.jeremymorosi.com/api/v1/doc上在线测试REST API:

alt text

文档由aiohttp_swagger生成。在

安装

使用pip:

pip install kanjidb

显示帮助:

^{pr2}$

生成JSON数据库

创建一个kanjis.txt文件,每行包含一个UTF-8编码的汉字。这是kanjis的列表 将包含在我们的数据库中:

一
二
三

现在,创建一个config.yml文件,其中包含:

run:-kanjidic2:kd2_file:path/to/kanjidic2.xmlinputs:-type:streamencoding:utf8separator:"\n"path:path/to/kanjis.txtoutputs:-type:streamindent:4path:path/to/db.json

在此配置中:

  • ^{str1}$kanjistream:是一个插件,它使用kanjidic2xml文件中的数据生成JSON dict。在
  • path/to/kanjidic2.xml:是kanjidic2 xml文件(download here)的路径。在
  • path/到/汉字.txt:是kanjis.txt文件的路径。在
  • path/到/数据库.json:是生成的JSON数据库的目标。在

运行以下命令:

python -m kanjidb build config.yml

这将生成一个db.json文件,其中包含生成的JSON数据库。 根据您的配置,这个文件可能相当大,所以这里只是您 将获得:

{"一":{"meanings":[{"m_lang":"","value":"one"}]},"二":{"meanings":[{"m_lang":"","value":"two"}]},"三":{"meanings":[{"m_lang":"","value":"three"}]}}

您可以阅读有关kanjidic2插件及其配置here的更多信息。在

运行restapi

现在我们将运行一个带有restapi的本地服务器,它允许我们从生成的db.json文件中查询信息。在

首先,创建一个config.cnf文件,其中包含:

[service]port=8080base-url=/api/v1swagger-yml=/path/to/swagger.ymlswagger-url=/api/v1/docdb-file=/path/to/db.json

只需更换:

  • /path/到/招摇过市.yml:按本地^{}文件的路径。在
  • /path/到/数据库.json:按生成的db.json文件的路径。在

现在运行:

python -m kanjidb run /path/to/config.cnf/directory/

你应该看到:

======== Running on http://0.0.0.0:8080 ========(Press CTRL+C to quit)

意味着服务已经准备好了。在

您可以通过以下方式访问:

请注意,这个存储库还包括一个默认的config.cnfswagger.ymldb.json可用于运行服务器的文件。只需签出此存储库并运行:

python -m kanjidb run etc

与Docker一起跑步

您可以通过下载此存储库并运行以下命令来构建Docker映像:

docker build -t kanjidb:latest .

接下来,将Docker映像运行为:

docker run \
 -v /path/to/etc:/etc/service \
 -v /path/to/log:/var/log/service \
 -p 8080:8080 \
 -it kanjidb:latest

其中:

  • /path/to/etc:是指向包含^{str 1}的服务目录的路径$配置cnf。在
  • /path/to/log:不存储日志的目录的路径。在
  • 8080:是访问restapi的公共端口。在

你应该看到:

======== Running on http://0.0.0.0:8080 ========(Press CTRL+C to quit)

意味着服务已经准备好了。在

测试

test目录包含许多可以运行的测试:

pythonsetup.pytest

或者有保险范围:

coveragerun--source=kanjidbsetup.pytest

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用唯一的按钮标签单击按钮   代码生成如何使用Java codeModel为数组的特定索引赋值   java如何批量执行Camel SQL插入   java iText 7将ltv添加到现有签名   内存管理Java应用程序突然停止几天后(810)   带MySQL的java注册表单JavaFX在intellij中失败   如何使用eclipse为windows azure java项目启用远程调试   一种通用的java输入输出设计模式   java Android XML(RSS)忽略引号(“”)   java帮助:安卓中的8 X 10 2维按钮数组   java启动Android项目   JWrapper构建java应用程序   java如何在Android应用程序中设置基于日期/时间的默认页面加载?   java循环程序在完成后返回到起点   java Hibernate:更好的整体类还是多类映射?   回溯数独解算器的递归问题[Java]   java查找类用法   java如何在SpringWebFlow中将多个模型绑定到一个视图?