「Python」22 个最常用的Python包( 三 )
下载次数:5.27 亿
根据其 PyPI 页面 , idna提供了“对 RFC5891 中指定的应用程序中国际化域名(IDNA)协议的支持 。 ”
可能你像我一样也是一头雾水 , 不知道Idna是什么 , 有什么用!据悉 , 应用程序中的国际化域名(IDNA)是一种用来处理包含非 ASCII 字符的域名机制 。 但是 , 原始域名系统已经提供对基于非 ASCII 字符的域名支持 。 所以 , 哪有问题?
本文插图
问题在于应用程序(例如电子邮件客户端和 Web 浏览器)不支持非 ASCII 字符 。 更具体地说 , 电子邮件和 HTTP 用的协议不支持这些字符 。 对许多国家来说 , 这没什么问题 , 但是像中国、俄罗斯、德国、希腊和印度尼西亚等国家 , 这是个问题 。 最后 , 来自这些地方的一群聪明人想到 IDNA 。
IDNA的核心是两个函数:ToASCII和ToUnicode 。 ToASCII会将国际 Unicode 域转换为 ASCII 字符串 。 ToUnicode则逆转该过程 。 在IDNA包中 , 这些函数称为idna.encode和idna.decode , 如以下代码片段所示:
import idnaidna.encode('ドメイン.テスト')# b'xn--eckwd4c7c.xn--zckzah'print(idna.decode('xn--eckwd4c7c.xn--zckzah'))# ドメイン.テスト 如果你是受虐狂 , 则可以阅读 RFC-3490 了解这一编码的详细信息 。
PyPI 页面
https://pypi.org/project/idna/
GitHub 页面
https://github.com/kjd/idna
10 PyYAML
下载次数:5.25 亿
YAML是一种数据序列化格式 。 它的设计宗旨是让人类和计算机都能很容易地阅读代码——人类很容易读写它的内容 , 计算机也可以解析它 。
本文插图
PyYAML是 Python 的YAML解析器和发射器 , 这意味着它可以读写YAML 。 它会把任何 Python 对象写成YAML:列表、字典 , 甚至是类实例都包括在内 。
Python 提供了自己的配置解析器 , 但是与 Python 的ConfigParser的基本.ini文件结构相比 , YAML 提供更多功能 。
https://docs.python.org/3/library/configparser.html
例如 , YAML可以存储任何数据类型:布尔值、列表、浮点数等等 。 ConfigParser会将所有内容存储为内部字符串 。 如果要使用ConfigParser加载整数 , 则你需要指定自己要显式获取一个int:
config.getint(“section”, “my_int”) pyyaml能自动识别类型 , 所以这将使用PyYAML返回你的int:
config[“section”][“my_int”] 【「Python」22 个最常用的Python包】YAML还允许任意的 deep trees , 虽然不是每个项目都需要这种东西 , 但是需要时 , 它就可以派上用场 。 你可能有自己的偏好 , 但是许多项目都使用YAML作为配置文件 , 所以这个项目是很受欢迎的 。
PyPI 页面
https://pypi.org/project/PyYAML/
文档
https://pyyaml.org/
11 Pyasn1
下载次数:5.12 亿
像上面的IDNA一样 , 这个项目也非常有用:
ASN.1 类型和 DER/BER/CER 编码(X.208)的纯 Python 实现
所幸这个已有数十年历史的标准有很多信息可用 。 ASN.1是 Abstract Syntax Notation One 的缩写 , 它就像是数据序列化的教父 。 它来自电信行业 。 也许你知道协议缓冲区或 Apache Thrift?这就是它们的 1984 年版本 。
ASN.1 描述了系统之间的跨平台接口 , 以及可以通过该接口发送的数据结构 。
还记得 Certifi(请参阅 #8)吗?ASN.1 用于定义 HTTPS 协议和其他许多加密系统中使用的证书格式 。 它也用在了 SNMP、LDAP、Kerberos、UMTS、LTE 和 VOIP 协议中 。
推荐阅读
- []学会这个最基础的统计学知识,数据分析专业度提升一大截
- ■奶奶大学同学让我别学Python了,吃枣药丸,劝我学汇编,说是时髦
- 「程序员小助手」奶奶大学同学让我别学Python了,吃枣药丸,劝我学汇编,说是时髦
- 『Python』用Python编写FPGA以太网MAC(附源码下载方式)
- 机器之心:几行代码搞定ML模型,低代码机器学习Python库正式开源
- [Python]战“疫”期,阿里云云效团队在家高效开发实录
- 『字符串』Python正则表达式由浅入深(三)
- #CDA数据分析师#2020年软件工程现状:Python或将成为第一大编程语言
- 『excel我帮您』Excel最常用的8个技能
- 2019科技之光@【龙腾网】麒麟处理器和骁龙处理器哪个最好?
