Several highly rated Python libraries arrow, jsonpath, psutil and tenacity are recommended

I am not the same 2021-08-09 11:54:43
highly rated python libraries arrow


This is my participation 8 The fourth of the yuegengwen challenge 8 God , Check out the activity details :8 Yuegengwen challenge Hello everyone , Today I'd like to introduce some good comments Python library , I hope it will be helpful to your project preparation .

Arrow

Python There are too many standard library modules and types , Time zone conversion trouble , and Arrow Is a more intelligent Python Time processing library . It implements and updates the date time type , Support the creation of 、 operation 、 Format and convert dates 、 Time and time stamp , You can use less import and code to process dates and times .

github.com/crsmithdev/…

install :pip install arrow

import arrow
# Time in the local time zone 、 year 、 month 、 Japan 、 when
print(arrow.now())
print(arrow.now().year)
print(arrow.now().month)
print(arrow.now().day)
print(arrow.now().hour)
# Gets the time in the specified time zone
print(arrow.now('US/Pacific'))
# Get the timestamp
print(arrow.now().timestamp())
# Arrow Object to string time
print(arrow.now().format(fmt="YYYY-MM-DD HH:mm:ss"))
# Timestamp to date
timeStamp = 1625034427.024892
i = arrow.get(timeStamp)
print(i.format('YYYY-MM-DD HH:mm:ss'))
# One year before the current time ,1 Months ago ,2 Zhou Qian ,3 Days later ,2 Hours later
print(arrow.now().shift(years=-1, months=-1, weeks=-2, days=3, hours=2).format())
print(arrow.utcnow().span('hour'))
 Copy code 

jsonpath

jsonpath Used to resolve json data , It's a simple way to extract a given JSON Part of the document . It provides a regular expression like syntax , Can parse complex nested data structures , It is very convenient to extract the data information returned by the interface .

install :pip install jsonpath

Use :

from jsonpath import jsonpath
ret = jsonpath(dic, ' Syntax rule string ')
 Copy code 

jsonpath Rule of grammar

grammar describe
$ The root node
@ Use filter predicates to process the current node
. or [] Take the child node
n/a Take the parent node ,jsonpath Not supported
.. It doesn't matter where you are , Select the conditions that meet the conditions
* Match all element nodes
[,] Support multiple choices in iterators
?() Support filtering operation
() Support expression evaluation

image-20210808190926129

JsonPath grammar result
$.store.book[*].author obtain store Next book All under author value
$..author Get all author Value
$.store..price obtain store All nodes under and all child nodes price
$..book[2] obtain book The first of an array of 3 It's worth
$..book[0,1] obtain book The first of the array 、 The second value
$..book[:2] obtain book Array from index 0 ( Include ) To Indexes 2 ( barring ) All values
$..book[1:2] obtain book Array from index 1 ( Include ) To Indexes 2 ( barring ) All values
$..book[2:] obtain book Array from index 2 ( Include ) To ending All values
$..book[?(@.isbn)] obtain All nodes and child nodes book The array contains isbn All values
$.store.book[?(@.price < 10)] obtain store Next book Array price < 10 All values
. . b o o k [ ? ( @ . p r i c e < = ..book[?(@.price <= ['expensive'])] obtain All nodes and child nodes book Array price <= expensive All values
$..book[?(@.author =~ /.*REES/i)] Get all matching regular book ( Case insensitive )
$..* List layer by layer json in All values , Hierarchy from outside to inside

psutil

A cross platform method for monitoring hardware information Python library , Can monitor 、 Analyze the process of the operating system 、cpu、 Memory 、 The Internet 、 Use of disk and other resources .

psutil The functions implemented are similar to linux Many resource monitoring commands in , Such as ps、 top、 iotop、 lsof、 netstat、 ifconfig、 free etc. , Of course , You can combine Python Programming , To achieve more advanced functions , For example, combining with the front-end framework to realize visual resource monitoring resource information .

github.com/giampaolo/p…

install :pip install psutil

see CPU

import psutil
# cpu The number of logics
print(psutil.cpu_count())
# every other 1 Output every... Seconds cpu The usage rate of
for x in range(3):
# interval: every other 0.5s Refresh once
# percpu: View all cpu Usage rate
print(psutil.cpu_percent(interval=1, percpu=True))
 Copy code 

image-20210808191127848

Look at the memory

import psutil
# Output memory usage ( Total memory 、 Available memory 、 Memory usage 、 Used memory )
print(psutil.virtual_memory())
 Copy code 
svmem(total=17126330368, available=8755355648, percent=48.9, used=8370974720, free=8755355648)
 Copy code 

disk IO

import psutil
# disk IO Information read_count( read IO Count ),write_count( Write IO Count )、read_bytes(IO Number of bytes written ),read_time( Disk read time ),write_time( Disk write time )
print(psutil.disk_io_counters())
 Copy code 
sdiskio(read_count=308820, write_count=193263, read_bytes=6779938304, write_bytes=3320958976, read_time=7298, write_time=2630)
 Copy code 

The Internet

import psutil
# bytes_sent: Number of bytes sent
# bytes_recv: Bytes received
# packets_sent: The amount of packet data sent
# packets_recv: The amount of packet data received
# errin: When receiving packets , Number of errors
# errout: When sending a packet , Number of errors
# dropin: When receiving packets , Number of discards
# dropout: When sending a packet , Number of discards
print(psutil.net_io_counters())
 Copy code 
snetio(bytes_sent=19362924, bytes_recv=159579883, packets_sent=118788, packets_recv=184342, errin=0, errout=0, dropin=0, dropout=0)
 Copy code 

github.com/jd/tenacity

tenacity

tenacity It's a Apache 2.0 Authorized universal retrial Library , Automated tests or crawlers , When the network instability causes the request to time out or wait for the conditions to be met , We can go through tenacity Implement the retry function of the code .

github.com/jd/tenacity

pip install tenacity
 Copy code 

Very simple to use , Directly add the decorator to use .

retry 3 Time

import tenacity
from tenacity import stop_after_attempt
@tenacity.retry(stop=stop_after_attempt(3))
def retry_test():
print(" retry ...")
raise Exception
retry_test()
 Copy code 

retry 10 second

import tenacity
from tenacity import stop_after_delay
@tenacity.retry(stop=stop_after_delay(10))
def retry_test():
print(" retry ...")
raise Exception
retry_test()
 Copy code 

every other 2 Seconds to retry

import tenacity from tenacity import wait_fixed

@tenacity.retry(wait=wait_fixed(2)) def wait_2_s(): print("Wait 2 second between retries") raise Exception

print(wait_2_s)

版权声明
本文为[I am not the same]所创,转载请带上原文链接,感谢
https://pythonmana.com/2021/08/20210809115227642r.html

  1. 利用Python爬虫获取招聘网站职位信息
  2. Using Python crawler to obtain job information of recruitment website
  3. Several highly rated Python libraries arrow, jsonpath, psutil and tenacity are recommended
  4. Python装饰器
  5. Python实现LDAP认证
  6. Python decorator
  7. Implementing LDAP authentication with Python
  8. Vscode configures Python development environment!
  9. In Python, how dare you say you can't log module? ️
  10. 我收藏的有关Python的电子书和资料
  11. python 中 lambda的一些tips
  12. python中字典的一些tips
  13. python 用生成器生成斐波那契数列
  14. python脚本转pyc踩了个坑。。。
  15. My collection of e-books and materials about Python
  16. Some tips of lambda in Python
  17. Some tips of dictionary in Python
  18. Using Python generator to generate Fibonacci sequence
  19. The conversion of Python script to PyC stepped on a pit...
  20. Python游戏开发,pygame模块,Python实现扫雷小游戏
  21. Python game development, pyGame module, python implementation of minesweeping games
  22. Python实用工具,email模块,Python实现邮件远程控制自己电脑
  23. Python utility, email module, python realizes mail remote control of its own computer
  24. 毫无头绪的自学Python,你可能连门槛都摸不到!【最佳学习路线】
  25. Python读取二进制文件代码方法解析
  26. Python字典的实现原理
  27. Without a clue, you may not even touch the threshold【 Best learning route]
  28. Parsing method of Python reading binary file code
  29. Implementation principle of Python dictionary
  30. You must know the function of pandas to parse JSON data - JSON_ normalize()
  31. Python实用案例,私人定制,Python自动化生成爱豆专属2021日历
  32. Python practical case, private customization, python automatic generation of Adu exclusive 2021 calendar
  33. 《Python实例》震惊了,用Python这么简单实现了聊天系统的脏话,广告检测
  34. "Python instance" was shocked and realized the dirty words and advertisement detection of the chat system in Python
  35. Convolutional neural network processing sequence for Python deep learning
  36. Python data structure and algorithm (1) -- enum type enum
  37. 超全大厂算法岗百问百答(推荐系统/机器学习/深度学习/C++/Spark/python)
  38. 【Python进阶】你真的明白NumPy中的ndarray吗?
  39. All questions and answers for algorithm posts of super large factories (recommended system / machine learning / deep learning / C + + / spark / Python)
  40. [advanced Python] do you really understand ndarray in numpy?
  41. 【Python进阶】Python进阶专栏栏主自述:不忘初心,砥砺前行
  42. [advanced Python] Python advanced column main readme: never forget the original intention and forge ahead
  43. python垃圾回收和缓存管理
  44. java调用Python程序
  45. java调用Python程序
  46. Python常用函数有哪些?Python基础入门课程
  47. Python garbage collection and cache management
  48. Java calling Python program
  49. Java calling Python program
  50. What functions are commonly used in Python? Introduction to Python Basics
  51. Python basic knowledge
  52. Anaconda5.2 安装 Python 库(MySQLdb)的方法
  53. Python实现对脑电数据情绪分析
  54. Anaconda 5.2 method of installing Python Library (mysqldb)
  55. Python implements emotion analysis of EEG data
  56. Master some advanced usage of Python in 30 seconds, which makes others envy it
  57. python爬取百度图片并对图片做一系列处理
  58. Python crawls Baidu pictures and does a series of processing on them
  59. python链接mysql数据库
  60. Python link MySQL database