python 第三方库(PyPinyin\shortuuid\json)

PyPinyin库 

简介

PyPinyin库是一个支持中文转拼音输出的Python第三方库,它可以根据词组智能匹配最正确的拼音,并且支持多音字,简单的繁体, 注音,多种不同拼音/注音风格的转换。

安装

(framework-learn) C:\Users\zzg>pip install pypinyin
Collecting pypinyin
  Downloading 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 shortuuid
  Downloading 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']= 10

print(di)

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值