python 第三方库(PyPinyin\shortuuid\json)
PyPinyin库
简介
PyPinyin库是一个支持中文转拼音输出的Python第三方库,它可以根据词组智能匹配最正确的拼音,并且支持多音字,简单的繁体, 注音,多种不同拼音/注音风格的转换。
安装
(framework-learn) C:\Users\zzg>pip install pypinyin
Collecting pypinyinDownloading pypinyin-0.51.0-py2.py3-none-any.whl.metadata (12 kB)
Downloading pypinyin-0.51.0-py2.py3-none-any.whl (1.4 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 273.9 kB/s eta 0:00:00
Installing collected packages: pypinyin
Successfully installed pypinyin-0.51.0
使用
pypin方法
返回列表List,每个元素都是另外成了一个列表,其中包含了每个字的读音( pinyin 方法默认使用了 TONE 的风格,即有声调的风格模式)
# 引入第三方库:PyPinyin
from pypinyin import pinyin# 基本用法
print(pinyin("四月"))
词是多音词,需添加 heteronym 参数并设置为 True
温馨提示:这里的多音词并不是指单个字的多音字,而是这个词语本身就有两种读音。
from pypinyin import pinyin# 基本用法
print(pinyin("四月"))# 多音词
print(pinyin("中心", heteronym=True))
lazy_pinyin方法
将汉字转换为拼音,返回不包含多音字结果的拼音列表(lazy_pinyin 方法默认使用了 NORMAL,即无声调的风格模式)
# 引入第三方库:PyPinyin
from pypinyin import pinyin
from pypinyin import lazy_pinyin# 基本用法
print(pinyin("四月"))# 多音词
print(pinyin("中心", heteronym=True))# 返回一维列表
print(lazy_pinyin("你是我的眼"))
音标风格转换
对转音标结果进行一些风格转换,比如不带声调风格、标准声调风格、声调在拼音之后、声调在韵母之后、注音风格等等
# 引入第三方库:PyPinyin
from pypinyin import pinyin
from pypinyin import lazy_pinyin
from pypinyin import Style# 基本用法
print(pinyin("四月"))# 多音词
print(pinyin("中心", heteronym=True))# 返回一维列表
print(lazy_pinyin("你是我的眼"))# 拼音风格指定:不带声调风格、标准声调风格、声调在拼音之后、声调在韵母之后、注音风格
print(lazy_pinyin("我爱你,我的中国", style=Style.NORMAL))
音标风格详解:
#: 普通风格,不带声调。如: 中国 -> ``zhong guo``
NORMAL = 0
#: 标准声调风格,拼音声调在韵母第一个字母上(默认风格)。如: 中国 -> ``zhōng guó``
TONE = 1
#: 声调风格2,即拼音声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 -> ``zho1ng guo2``
TONE2 = 2
#: 声调风格3,即拼音声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``zhong1 guo2``
TONE3 = 8
#: 声母风格,只返回各个拼音的声母部分(注:有的拼音没有声母,详见 `#27`_)。如: 中国 -> ``zh g``
INITIALS = 3
#: 首字母风格,只返回拼音的首字母部分。如: 中国 -> ``z g``
FIRST_LETTER = 4
#: 韵母风格,只返回各个拼音的韵母部分,不带声调。如: 中国 -> ``ong uo``
FINALS = 5
#: 标准韵母风格,带声调,声调在韵母第一个字母上。如:中国 -> ``ōng uó``
FINALS_TONE = 6
#: 韵母风格2,带声调,声调在各个韵母之后,用数字 [1-4] 进行表示。如: 中国 -> ``o1ng uo2``
FINALS_TONE2 = 7
#: 韵母风格3,带声调,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``ong1 uo2``
FINALS_TONE3 = 9
#: 注音风格,带声调,阴平(第一声)不标。如: 中国 -> ``ㄓㄨㄥ ㄍㄨㄛˊ``
BOPOMOFO = 10
#: 注音风格,仅首字母。如: 中国 -> ``ㄓ ㄍ``
BOPOMOFO_FIRST = 11
#: 汉语拼音与俄语字母对照风格,声调在各个拼音之后,用数字 [1-4] 进行表示。如: 中国 -> ``чжун1 го2``
CYRILLIC = 12
#: 汉语拼音与俄语字母对照风格,仅首字母。如: 中国 -> ``ч г``
CYRILLIC_FIRST = 13
PyPinyin异常/错误处理
如果我们输入的语句中,有无法转换成拼音的字符存在,我们就会引入PyPinyin库自带的errors参数
# 引入第三方库:PyPinyin
from pypinyin import pinyin
from pypinyin import lazy_pinyin
from pypinyin import Style# 基本用法
print(pinyin("四月"))# 多音词
print(pinyin("中心", heteronym=True))# 返回一维列表
print(lazy_pinyin("你是我的眼"))# 拼音风格指定:不带声调风格、标准声调风格、声调在拼音之后、声调在韵母之后、注音风格
print(lazy_pinyin("我爱你,我的中国", style=Style.NORMAL))# 拼音异常处理, 遇到无法解析直接默认输出
print(lazy_pinyin("我爱你,我的中国"))
errors 不同参数会对应不同的处理结果
1、默认是按照原文输出
2、errors = ignore, 将不能转拼音的字符去掉
# 引入第三方库:PyPinyin
from pypinyin import pinyin
from pypinyin import lazy_pinyin, load_phrases_dict
from pypinyin import Style# 基本用法
print(pinyin("四月"))# 多音词
print(pinyin("中心", heteronym=True))# 返回一维列表
print(lazy_pinyin("你是我的眼"))# 拼音风格指定:不带声调风格、标准声调风格、声调在拼音之后、声调在韵母之后、注音风格
print(lazy_pinyin("我爱你,我的中国", style=Style.NORMAL))# 拼音异常处理, 遇到无法解析直接默认输出
print(lazy_pinyin("我爱你,我的中国"))# 拼音异常处理, 遇到无法解析直接直接过滤
print(lazy_pinyin("我爱你,我的中国", errors="ignore"))
3、errors = lambda item:将无法转化的为音标的字符,转换成指定字符
# 引入第三方库:PyPinyin
from pypinyin import pinyin
from pypinyin import lazy_pinyin, load_phrases_dict
from pypinyin import Style# 基本用法
print(pinyin("四月"))# 多音词
print(pinyin("中心", heteronym=True))# 返回一维列表
print(lazy_pinyin("你是我的眼"))# 拼音风格指定:不带声调风格、标准声调风格、声调在拼音之后、声调在韵母之后、注音风格
print(lazy_pinyin("我爱你,我的中国", style=Style.NORMAL))# 拼音异常处理, 遇到无法解析直接默认输出
print(lazy_pinyin("我爱你,我的中国"))# 拼音异常处理, 遇到无法解析直接直接过滤
print(lazy_pinyin("我爱你,我的中国", errors="ignore"))# 拼音异常处理, 遇到无法解析通过lambda 指定输出
print(lazy_pinyin("我爱你,我的中国", errors=lambda item: ''.join(['*' if i == ',' else i for i in item])))
自定义拼音
如果对PyPinyin库返回的结果不满意,我们可以自定义自己的拼音库。
from pypinyin import pinyin
from pypinyin import lazy_pinyin, load_phrases_dict
from pypinyin import Style# 基本用法
print(pinyin("四月"))# 多音词
print(pinyin("中心", heteronym=True))# 返回一维列表
print(lazy_pinyin("你是我的眼"))# 拼音风格指定:不带声调风格、标准声调风格、声调在拼音之后、声调在韵母之后、注音风格
print(lazy_pinyin("我爱你,我的中国", style=Style.NORMAL))# 拼音异常处理, 遇到无法解析直接默认输出
print(lazy_pinyin("我爱你,我的中国"))# 拼音异常处理, 遇到无法解析直接直接过滤
print(lazy_pinyin("我爱你,我的中国", errors="ignore"))# 拼音异常处理, 遇到无法解析通过lambda 指定输出
print(lazy_pinyin("我爱你,我的中国", errors=lambda item: ''.join(['*' if i == ',' else i for i in item])))# 自定义拼音
print(lazy_pinyin('大夫'))
personalized_dict = {'大夫': [['da'], ['fu']]
}
load_phrases_dict(personalized_dict)
print(lazy_pinyin('大夫'))
shortuuid库
简介
shortuuid库是一个用于简单生成UUID。
安装
(framework-learn) C:\Users\zzg>pip install shortuuid
Collecting shortuuidDownloading shortuuid-1.0.13-py3-none-any.whl.metadata (5.8 kB)
Downloading shortuuid-1.0.13-py3-none-any.whl (10 kB)
Installing collected packages: shortuuid
Successfully installed shortuuid-1.0.13
使用
快速生成UUID
# shortuuid uuid 生成工具
import shortuuid# 基础uuid 输出
print(shortuuid.uuid())
快速生成UUID 并同时指定命名空间(URL/DNS)
# shortuuid uuid 生成工具
import shortuuid# 基础uuid 输出
print(shortuuid.uuid())# uuid 生成并不指定命名空间
print(shortuuid.uuid(name="www.baidu.com"))
# uuid 生成并指定命名空间
print(shortuuid.uuid(name="https://www.baidu.com"))
快速生成UUID,并指定生成长度
# shortuuid uuid 生成工具
import shortuuid# 基础uuid 输出
print(shortuuid.uuid())# uuid 生成并不指定命名空间
print(shortuuid.uuid(name="www.baidu.com"))
# uuid 生成并指定命名空间
print(shortuuid.uuid(name="https://www.baidu.com"))# uuid 生成并指定长度
print(shortuuid.random(length=10))
查看UUID生成字母表
import shortuuid# 基础uuid 输出
print(shortuuid.uuid())# uuid 生成并不指定命名空间
print(shortuuid.uuid(name="www.baidu.com"))
# uuid 生成并指定命名空间
print(shortuuid.uuid(name="https://www.baidu.com"))# uuid 生成并指定长度
print(shortuuid.random(length=10))# 查看uuid 生成字母表
print(shortuuid.get_alphabet())
设置UUID字母生成表
# shortuuid uuid 生成工具
import shortuuid# 基础uuid 输出
print(shortuuid.uuid())# uuid 生成并不指定命名空间
print(shortuuid.uuid(name="www.baidu.com"))
# uuid 生成并指定命名空间
print(shortuuid.uuid(name="https://www.baidu.com"))# uuid 生成并指定长度
print(shortuuid.random(length=10))# 查看uuid 生成字母表
print(shortuuid.get_alphabet())# 设置uuid 生成字母表
shortuuid.set_alphabet(alphabet="123456789")print(shortuuid.uuid())
快速生成UUID 加密和解密
# shortuuid uuid 生成工具
import shortuuid# 基础uuid 输出
print(shortuuid.uuid())# uuid 生成并不指定命名空间
print(shortuuid.uuid(name="www.baidu.com"))
# uuid 生成并指定命名空间
print(shortuuid.uuid(name="https://www.baidu.com"))# uuid 生成并指定长度
print(shortuuid.random(length=10))# 查看uuid 生成字母表
print(shortuuid.get_alphabet())# 设置uuid 生成字母表
shortuuid.set_alphabet(alphabet="123456789")print(shortuuid.uuid())# uuid 加密encode和解密decode
import uuid
u = uuid.uuid4()
print(u)# 加密
s = shortuuid.encode(u)
print(s)# 解密
print(shortuuid.decode(s))
快速生成UUID,对应实现类
# shortuuid uuid 生成工具
import shortuuid# 基础uuid 输出
print(shortuuid.uuid())# uuid 生成并不指定命名空间
print(shortuuid.uuid(name="www.baidu.com"))
# uuid 生成并指定命名空间
print(shortuuid.uuid(name="https://www.baidu.com"))# uuid 生成并指定长度
print(shortuuid.random(length=10))# 查看uuid 生成字母表
print(shortuuid.get_alphabet())# 设置uuid 生成字母表
shortuuid.set_alphabet(alphabet="123456789")print(shortuuid.uuid())# uuid 加密encode和解密decode
import uuid
u = uuid.uuid4()
print(u)# 加密
s = shortuuid.encode(u)
print(s)# 解密
print(shortuuid.decode(s))# uuid 类实例化
su = shortuuid.ShortUUID()# su 调用基础uuid
print(su.uuid())
json库
简介
Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:
- json.dumps(): 对数据进行编码。
- json.loads(): 对数据进行解码。
安装
Python 默认自带库
使用
Python 数据格式转换为json 格式字符串
import json# 构建json对象
data = {'no': 1,'name': 'Runoob','url': 'http://www.runoob.com'
}
# json.dumps() 将Python数据类型转换为json格式的字符串。
obj = json.dumps(data)
print(type(obj))
print(obj)
将json格式的字符串转换为Python数据类型(字典或列表)
#json 工具类
import json# 构建json对象
data = {'no': 1,'name': 'Runoob','url': 'http://www.runoob.com'
}
# json.dumps() 将Python数据类型转换为json格式的字符串。
obj = json.dumps(data)
print(type(obj))
print(obj)# json.loads() 将json格式的字符串转换为Python数据类型(字典或列表)。
di = json.loads(obj)
print(type(di))
print(di)
json 格式的字符串取值
import json# 构建json对象
data = {'no': 1,'name': 'Runoob','url': 'http://www.runoob.com'
}
# json.dumps() 将Python数据类型转换为json格式的字符串。
obj = json.dumps(data)
print(type(obj))
print(obj)# json.loads() 将json格式的字符串转换为Python数据类型(字典或列表)。
di = json.loads(obj)
print(type(di))
print(di)
# json 格式字符串取值
print(di['no'])
json 格式的字符串赋值
#json 工具类
import json# 构建json对象
data = {'no': 1,'name': 'Runoob','url': 'http://www.runoob.com'
}
# json.dumps() 将Python数据类型转换为json格式的字符串。
obj = json.dumps(data)
print(type(obj))
print(obj)# json.loads() 将json格式的字符串转换为Python数据类型(字典或列表)。
di = json.loads(obj)
print(type(di))
print(di)
# json 格式字符串取值
print(di['no'])# json 格式字符串重新赋值
di['no']= 10print(di)
相关文章:
python 第三方库(PyPinyin\shortuuid\json)
PyPinyin库 简介 PyPinyin库是一个支持中文转拼音输出的Python第三方库,它可以根据词组智能匹配最正确的拼音,并且支持多音字,简单的繁体, 注音,多种不同拼音/注音风格的转换。 安装 (framework-learn) C:\Users\zzg>pip …...
一文解读ISO26262安全标准:术语(二)
一文解读ISO26262安全标准:术语(二) 本文继续补充一些标准中的术语,方便后续文章内容的有效理解。 分支覆盖率 branch coverage 控制流分支覆盖的比率. 100%分支覆盖率意味着100%语句覆盖率,比如,一个if语句…...
【Datawhale学习笔记】从大模型到AgentScope
从大模型到AgentScope AgentScope是一款全新的Multi-Agent框架,专为应用开发者打造,旨在提供高易用、高可靠的编程体验! 高易用:AgentScope支持纯Python编程,提供多种语法工具实现灵活的应用流程编排,内置…...
QWebEngineView添加自定义网址协议UrlScheme
QWebEngineView可以和js交互需要使用QWebChannel,如果不使用的话,js可以请求自定义网址协议,相当于请求服务器,但是不用Qt专门做服务器,不占用系统端口。 如果结合系统自定义URL注册,可以达到访问自定义UR…...
react中使用腾讯地图
腾讯文档 申请好对应key 配置限额 https://lbs.qq.com/service/webService/webServiceGuide/webServiceQuota 代码 用到的服务端接口 1.逆地址解析 2.关键词输入提示 import React, { Component } from react; import styles from ./map.less import { Form, Row, Col, I…...
deepin23beta中SQLite3数据库安装与使用
SQLite 是一个嵌入式 SQL 数据库引擎,它实现了一个自包含、无服务器、零配置、事务性 SQL 数据库引擎。 SQLite 的代码属于公共领域,因此可以免费用于任何商业或私人目的。 SQLite 是世界上部署最广泛的数据库,其应用程序数量之多,…...
前后端分离项目环境搭建
1. 使用到的技术和工具 springboot vue项目的搭建 工具 idea,mavennodejs 2. 后端框架搭建 利用maven创建springboot项目 3. 前端项目搭建 1. 安装相关工具 nodejs: 一个开源、跨平台的 JavaScript 运行时环境,可以理解成java当中需要…...
HTML静态网页成品作业(HTML+CSS)——家乡漳州介绍设计制作(1个页面)
🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有1个页面。 二、作品演示 三、代…...
世界第二对海信到底有多重要?
作者 | 辰纹 来源 | 洞见新研社 不久前,全球权威市场研究机构Omdia公布了2023年全球电视销量排名,数据显示TCL电视全球销量达到了2526万台,位居全球第二,中国第一。 可是,同样是根据Omdia的数据,海信的官…...
多站合一的音乐搜索下载助手PHP源码l亲测
源码获取方式 回复:031601 搭建教程: 将源码下载上传至宝塔面板,直接运行即可~ 说明: 该源码进行测试,测试成功源码无加密优化相关其他采集问题。...
webserver烂大街?还有必要做么?
目录 什么是 Web Server? 如何提供 HTTP 服务? HTTP协议 简介 工作原理 工作步骤 HTTP请求报文格式 HTTP响应报文格式 HTTP请求方法 HTTP状态码 总结 都说webserver是C选手人手必备的烂大街项目,那么webserver 还有必要做么&…...
3.Redis命令
Redis命令 Redis 根据命令所操作对象的不同, 可以分为三大类: 对 Redis 进行基础性操作的命令,对 Key 的操作命令,对 Value 的操作命令。 1.1 Redis 首先通过 redis-cli 命令进入到 Redis 命令行客户端,然后再运行下…...
xray问题排查,curl: (35) Encountered end of file(已解决)
经过了好几次排查,都没找到问题,先说问题的排查过程,多次确认了user信息,包括用户id和alterid,都没问题,头大的一逼 问题排查过程 确保本地的xray服务是正常的 [rootk8s-master01 xray]# systemctl stat…...
【数据库】Oracle内存结构与参数调优
Oracle内存结构与参数调优 Oracle 内存结构概览oracle参数配置概览重要参数(系统运行前配置):次要参数(可在系统运行后再优化调整): Oracle数据库服务器参数如何调整OLTP内存分配操作系统核心参数配置Disabling ASMM(禁…...
PS学习-抠图-蒙版-冰块酒杯等透明物体
选中图,ctrlA 全选 ctrlC复制 创建一个蒙版图层 选中蒙版Alt 点击进入 ctrlv 复制 ctrli 反转 原图层 ctrldelete填充为白色 添加一个背景,这个方法通用 首选创建一个 拖到最底部 给它填充颜色 这个可能是我图片的原因。视频是这样做的...
绝赞春招拯救计划 -- 操作系统,组成原理,计网
进程和线程 进程 一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程 线程 进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以…...
c语言:于龙加
于龙加 任务描述 于龙同学设计了一个特别的加法规则,加法被重新定义了,我们称为于龙加。 两个非负整数的于龙加的意义是将两个整数按前后顺序连接合并形成一个新整数。 于龙想编程解决于龙加问题,可是对下面的程序他没有思路! …...
AcWing 790:数的三次方根 ← 浮点数二分
【题目来源】https://www.acwing.com/problem/content/792/【题目描述】 给定一个浮点数 n,求它的三次方根。【输入格式】 共一行,包含一个浮点数 n。【输出格式】 共一行,包含一个浮点数,表示问题的解。 注意,结果保留…...
【LLM】LLama2模型(RMSNorm、SwiGLU、RoPE位置编码)
note 预训练语言模型除了自回归(Autoregressive)模型GPT,还有自编码模型(Autoencoding)BERT[1]、编-解码(Encoder-Decoder)模型BART[67],以及融合上述三种方法的自回归填空…...
【力扣白嫖日记】1934.确认率
前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 1934.确认率 表:Signups 列名类型user_idinttime_stampdatetime User_id是该表的主键。每一行都…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...
医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...
2.2.2 ASPICE的需求分析
ASPICE的需求分析是汽车软件开发过程中至关重要的一环,它涉及到对需求进行详细分析、验证和确认,以确保软件产品能够满足客户和用户的需求。在ASPICE中,需求分析的关键步骤包括: 需求细化:将从需求收集阶段获得的高层需…...
