π Π£ΠΊΡΡ ΠΏΠΈΡΠΎΠ½Π° π
ΠΡΠΊΡΡΡΡ Π² Telegram
π ΠΠ°Π½Π°Π» ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Python. Π’Π΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠΎΠΊΠΈ ΠΈ Π»Π°ΠΉΡΡ Π°ΠΊΠΈ. π½ ΠΠ΄ΠΌΠΈΠ½ - @tg_adminisrator π ΠΡΠΏΠΈΡΡ ΡΠ΅ΠΊΠ»Π°ΠΌΡ: https://telega.in/c/byteofpython π Π§Π°Ρ: @abyteofpython π ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Ρ Π΄ΡΡΠ·ΡΡΠΌΠΈ: @byteofpython
ΠΠΎΠ»ΡΡΠ΅2 334
ΠΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΈ
ΠΠ΅Ρ Π΄Π°Π½Π½ΡΡ
24 ΡΠ°ΡΠ°
-117 Π΄Π½Π΅ΠΉ
-3730 Π΄Π΅Π½Ρ
ΠΡΡ
ΠΈΠ² ΠΏΠΎΡΡΠΎΠ²
ΠΠΎΡΠ΅ΠΌΡ Python Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½ ΡΡΠ΅Π΄ΠΈ DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ²?
ΠΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π²ΠΈΠΆΠ΅ΡΡΡ ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ΅Π³ΠΎ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ. Π ΡΡΠΎΠ±Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ°, ΡΠΌΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ. Python β ΡΡΠΎ ΠΌΠ°ΡΡΡ
Π΅Π².
π Π£ Python ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π½Π° Π½ΡΠΌ Π±ΡΡΡΡΠΎ.
π Π Π½ΡΠΌ Π΅ΡΡΡ ΠΊΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
π Python ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π·Π°Π΄Π°Ρ, ΡΠ°Π±ΠΎΡΠΎΠΉ Ρ API, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΎΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· Ansible), Π° ΡΠ°ΠΊΠΆΠ΅ Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄Π»Ρ CI/CD ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ² ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°.
ΠΡΡ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ»ΠΎΠΆΠ½ΡΡ
DevOps-ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
.
Π£Π·Π½Π°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ
ΠΎΡΠΎΡΠΎ Π²Ρ Π²Π»Π°Π΄Π΅Π΅ΡΠ΅ Python, ΠΌΠΎΠΆΠ½ΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΡΡΠ΅. ΠΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΠ΅ Π² Π±ΠΎΡΠ° ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΠΉΡΠ΅ Π½Π° 5 Π²ΠΎΠΏΡΠΎΡΠΎΠ²π
#ΡΠ΅ΠΊΠ»Π°ΠΌΠ°
Π ΡΠ΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°ΡΠ΅Π»Π΅
erid: LjN8KAkrn
β‘οΈΠ§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ importlib?
ΠΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° ΠΈΠΌΠΏΠΎΡΡΠ°. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈΡ
ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠ΅ΡΡ!
β‘οΈΠΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ importlib:
import importlib
# ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠΌΠΏΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
math = importlib.import_module('math')
# ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ
print(math.pi) # ΠΡΠ²ΠΎΠ΄ΠΈΡ 3.141592653589793
# ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ
importlib.reload(math)
β‘οΈΠ‘ importlib Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅:
β’ ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ
β’ ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
β’ Π‘ΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠΌΠΏΠΎΡΡΠ΅ΡΡ
β’ Π Π°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
πΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΊΠΎΠ΄Π°.ΠΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ JMESpath, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° JSON.
β‘οΈΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
import jmespath
jmespath.search('foo.bar', {'foo': {'bar': 'baz'}})
# output: 'baz'
jmespath.search('foo.*.name', {'foo': {'bar': {'name': 'one'}, 'baz':
{'name': 'two'}}})
# output: ['one', 'two']
ΠΠ΅ΡΠΎΠ΄ search ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΡΡΠ΅ΡΠ½, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ·Π²Π»Π΅ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ (ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠΎΡ
ΠΎΠΆ Π½Π° JSON).