「Python」22 个最常用的Python包( 五 )
诸如google-auth(#37)、oauthlib(#54)、awscli(#17)之类的包都依赖rsa包 。 很少有人会将这个工具独立使用 , 因为有更快、更原生的替代方法 。
15 Jmespath
下载次数:4.73 亿
在 Python 中用 JSON 非常容易 , 因为它在 Python 字典上的映射非常好 。 对我来说 , 这是它最好的特性之一 。
本文插图
实话实说——尽管我已经用 JSON 做过很多工作 , 但我从未听说过这个包 。 我只是用 json.loads 并从字典中手动获取数据 , 也许再搞个循环什么的 。
JMESPath , 发音为“James path” , 使 Python 中的 JSON 更容易使用 。 它允许你声明性地指定如何从 JSON 文档中提取元素 。 以下是一些基本示例:
import jmespath# Get a specific elementd = {"foo": {"bar": "baz"}}print(jmespath.search('foo.bar', d))# baz# Using a wildcard to get all namesd = {"foo": {"bar": [{"name": "one"}, {"name": "two"}]}}print(jmespath.search('foo.bar[*].name', d))# [“one”, “two”] PyPI 页面
https://pypi.org/project/jmespath/
文档
http://jmespath.org/
16 Setuptools
下载次数:4.01 亿
它是用于创建 Python 包的工具 。 不过 , 其文档很糟糕 。 它没有清晰描述它的用途 , 并且文档中包含无效链接 。 最好的信息源是这个站点 , 特别是这个创建 Python 包的指南 。
https://packaging.python.org/
https://packaging.python.org/tutorials/packaging-projects/
17 Awscli
这里把 #3、#7、#17 和 #22 放在一起介绍 , 因为它们的关系非常密切 。
18 Pytz
下载次数:3.94 亿次
像dateutils(#5)一样 , 这个库可帮助你处理日期和时间 。 有时候 , 时区处理起来可能很麻烦 。 幸好有这样的包 , 可以让事情变得简单些 。
我自己关于计算机上处理时间的经验总结来说是:始终在内部使用 UTC 。 仅当生成供人类读取的输出时 , 才转换为本地时间 。
这是pytz用法的示例:
from datetime import datetimefrom pytz import timezoneamsterdam = timezone('Europe/Amsterdam')ams_time = amsterdam.localize(datetime(2002, 10, 27, 6, 0, 0))print(ams_time)# 2002-10-27 06:00:00+01:00# It will also know when it's Summer Time# in Amsterdam (similar to Daylight Savings Time):ams_time = amsterdam.localize(datetime(2002, 6, 27, 6, 0, 0))print(ams_time)# 2002-06-27 06:00:00+02:00 19 Futures
下载次数:3.89 亿
从 Python 3.2 开始 , python 提供current.futures模块 , 可帮助你实现异步执行 。 futures 包是该库适用于 Python 2 的 backport 。 它不适用于 Python3 用户 , 因为 Python 3 原生提供了该模块 。
正如我之前提到的 , 从 2020 年 1 月 1 日起 , Python 2 的官方支持停止 。 希望我明年重新再来看的时候 , 这个包不会再出现在前 22 名中吧 。
下面是 futures 的基本示例:
from concurrent.futures import ThreadPoolExecutorfrom time import sleepdef return_after_5_secs(message): sleep(5) return messagepool = ThreadPoolExecutor(3)future = pool.submit(return_after_5_secs, ("Hello world"))print(future.done)# Falsesleep(5)print(future.done)# Trueprint(future.result)# Hello World 如你所见 , 你可以创建一个线程池并提交一个要由这些线程之一执行的函数 。 同时 , 你的程序将继续在主线程中运行 。 这是并行执行程序的简便方法 。
推荐阅读
- []学会这个最基础的统计学知识,数据分析专业度提升一大截
- ■奶奶大学同学让我别学Python了,吃枣药丸,劝我学汇编,说是时髦
- 「程序员小助手」奶奶大学同学让我别学Python了,吃枣药丸,劝我学汇编,说是时髦
- 『Python』用Python编写FPGA以太网MAC(附源码下载方式)
- 机器之心:几行代码搞定ML模型,低代码机器学习Python库正式开源
- [Python]战“疫”期,阿里云云效团队在家高效开发实录
- 『字符串』Python正则表达式由浅入深(三)
- #CDA数据分析师#2020年软件工程现状:Python或将成为第一大编程语言
- 『excel我帮您』Excel最常用的8个技能
- 2019科技之光@【龙腾网】麒麟处理器和骁龙处理器哪个最好?
