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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python类对象

类提供了把数据和功能绑定在一起的方法。创建新类时创建了新的对象 类型,从而能够创建该类型的新 实例。实例具有能维持自身状态的属性,还具有能修改自身状态的方法(由其所属的类来定义)。 和其他编程语言相比,Python…

QT for Mcu的学习建议

QT for MCU(微控制器单元)是一个相对较新的领域,它允许在资源受限的微控制器上运行Qt框架,从而为嵌入式设备带来丰富的用户界面和跨平台的开发体验。以下是一些建议,可以帮助你开始学习Qt for MCU: 理解Qt…

从遍历上来说,list是单向的,vector是双向的。这句话对吗

从遍历的角度来说: 对于list来说,虽然它是双向链表,每个节点都包含指向前一个节点和后一个节点的指针,但在实际遍历时,我们通常只能沿着一个方向(比如从头到尾或从尾到头)进行遍历,因…

图像去噪--(1)

系列文章目录 文章目录 系列文章目录前言一、图像噪声1.1 噪声定义1.2 基本特征 二、按照噪声概率分布分类1.高斯噪声2.泊松噪声 三、去噪算法3.1 线性滤波3.1.1 高斯滤波3.1.2 均值滤波 3.2 非线性滤波3.2.1 中值滤波3.2.2 双边滤波 四、深度学习总结 前言 一、图像噪声 1.1 …

条款09:绝不在析构和构造中调用virtual函数

1.为什么 #include<iostream> using namespace std;class Transaction//交易信息类 {Transaction();virtual void logTransaction()const 0;//交易日志 };Transaction::Transaction() {logTransaction(); }class BuyTransaction : public Transaction//买入操作 {virtu…

Springboot全局异常处理

Springboot全局异常处理 一、不使用全局异常处理器二、全局异常处理器1.自定义常量&#xff08;返回状态码&#xff09;2.手动抛出异常3.编写全局异常处理器4.测试结果 三、全局异常处理方式二1.定义状态码常量2. 定义基础接口&#xff08;面向接口编程&#xff09;3.定义枚举类…

湖南麒麟SSH服务漏洞

针对湖南麒麟操作系统进行漏洞检测时&#xff0c;会报SSH漏洞风险提醒&#xff0c;具体如下&#xff1a; 针对这些漏洞&#xff0c;可以关闭SSH服务&#xff08;前提是应用已经部署完毕不再需要通过SSH远程访问传输文件的情况下&#xff0c;此时可以通过VNC远程登录方法&#x…

JMeter基础 — JMeter聚合报告详解

提示&#xff1a;聚合报告组件的使用和察看结果树组件的使用方式相同。本篇文章主要是详细的介绍一下聚合报告组件内容&#xff0c;不做示例演示。 1、聚合报告介绍 在使用JMeter进行性能测试时&#xff0c;聚合报告(Aggregate Report)可以说是必用的监听器。 &#xff08;1&…

Internet协议的安全性

Internet协议的安全性 文章目录 Internet协议的安全性1. 网络层1. IP*62. ARP*33. ICMP * 3 2. 传输层协议1. TCP1. * SYN-Flood攻击攻击检测* 防御 2. TCP序号攻击攻击 3. 拥塞机制攻击 2. UDP 3. 应用层协议1. DNS攻击*3防范*3: 2. FTP3. TELNET: 改用ssh4. 电子邮件1. 攻击2…

【Javascript编程实操06】1、反转数组和字符串 2、将二维数组转一维数组

前言 1、反转数组和字符串 代码&#xff1a; 实现效果&#xff1a; 2、将二维数组转一维数组 代码&#xff1a; 实现效果&#xff1a; 总结 前言 本次主要是针对Javascript阶段的字符串与数组的实操练习&#xff0c;共有2个实操&#xff0c;大家可以在实操的过程中更加深…

什么时候去检测大数据信用风险比较合适?

什么时候去检测大数据信用风险比较合适?在当今这个数据驱动的时代&#xff0c;大数据信用风险检测已经成为个人的一项重要需求。本文将从贷前检测、信息泄露检测和定期检测三个方面&#xff0c;阐述何时进行大数据信用风险检测较为合适。 一、贷前检测 大数据信用风险检测在贷…

Docker使用(二)Docker安装和常见典型操作

Docker使用(二)Docker安装和常见典型操作 二、软件安装 1、Docker安装 &#xff08;1&#xff09;环境准备 [rootlocalhost ~]# uname -r 3.10.0-327.el7.x86_64 # cat /etc/os-release &#xff08;2&#xff09;卸载旧版本 $ sudo yum remove docker \ ​ docker-cli…

折半搜索.

折半搜索 知识点折半搜索的原理折半搜索的过程 例题题目&#xff1a;世界冰球锦标赛题目描述输入样例输出样例提示 世界冰球锦标赛题解思路代码 知识点 折半搜索的原理 折半搜索是一种技巧&#xff0c;实际上就是将一个次搜索过程分成两次进行&#xff0c;然后将两次搜索的结果…

145 Linux 网络编程1 ,协议,C/S B/S ,OSI 7层模型,TCP/IP 4层模型,

一 协议的概念 从应用的角度出发&#xff0c;协议可理解为“规则”&#xff0c;是数据传输和数据的解释的规则。 典型协议 传输层 常见协议有TCP/UDP协议。 应用层 常见的协议有HTTP协议&#xff0c;FTP协议。 网络层 常见协议有IP协议、ICMP协议、IGMP协议。 网络接口层 常…

作业-逆序和定位

目录 字符串逆序 题目描述 输入 输出 样例 解题思路&#xff1a; 单词倒排 题目描述 输入 输出 样例 解题思路&#xff1a; 首字母大写 题目描述 输入 输出 样例 解题思路&#xff1a; 统计句子中单词个数 题目描述 输入 输出 样例 解题思路&#xff1a; 大小写字母互换 题目描…

springboot“涛宝”大学生二手物品交易商城

摘 要 二十一世纪我们的社会进入了信息时代&#xff0c;信息管理系统的建立&#xff0c;大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多&#xff0c;而在线管理系统刚好能满足这些需求&#xff0c;在线管理系统突破了传统管理方式的局限性。于是本文针对这一…

Kubernetes operator系列:webhook 知识学习

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Kubernetes operator学习 系列文章&#xff0c;本节会对 kubernetes webhook 知识进行学习 本文的所有代码&#xff0c;都存储于github代码库&#xff1a;https://github.com/graham924/share-code-operator-st…

免费接口调用 招标信息自动抽取|招标信息|招标数据解析接口

一、开源项目介绍 一款多模态AI能力引擎&#xff0c;专注于提供自然语言处理&#xff08;NLP&#xff09;、情感分析、实体识别、图像识别与分类、OCR识别和语音识别等接口服务。该平台功能强大&#xff0c;支持本地化部署&#xff0c;并鼓励用户体验和开发者共同完善&#xf…

浅谈性能测试中的基准测试

在性能测试中有一种测试类型叫做基准测试。这篇文章&#xff0c;就聊聊关于基准测试的一些事儿。 1、定义 通过设计合理的测试方法&#xff0c;选用合适的测试工具和被测系统&#xff0c;实现对某个特定目标场景的某项性能指标进行定量的和可对比的测试。 2、特质 ①、可重…

软件实例,餐厅酒水寄存管理系统软件,酒水寄存登记表软件操作教程

软件实例&#xff0c;餐厅酒水寄存管理系统软件&#xff0c;酒水寄存登记表软件操作教程 一、前言 以下软件操作以 佳易王酒水寄存管理系统软件V16.0为例说明 件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、酒水寄存管理系统软件可以管理多个品类的物…