πŸ–₯ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСриализация

БСриализация – это процСсс сохранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ ΠΈΠ»ΠΈ строковом Π²ΠΈΠ΄Π΅ для хранСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ восстановлСния. ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ процСсс называСтся дСсСриализациСй. Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹-синонимы ΠΌΠ°Ρ€ΡˆΠ°Π»ΠΈΠ½Π³/Π°Π½ΠΌΠ°Ρ€ΡˆΠ°Π»ΠΈΠ½Π³



json.dumps / json.dump , json.loads / json.load

Ѐункция dumps модуля json сохраняСт JSON-прСдставлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² строку. Ѐункция dump – Π² тСкстовый Ρ„Π°ΠΉΠ». Ѐункция loads модуля json Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· строки. Ѐункция load – ΠΈΠ· тСкстового Ρ„Π°ΠΉΠ»Π°.



Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Ссли Π½ΡƒΠΆΠ½ΠΎ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ стандартным ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ json

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pickle ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ классы JSONEncoder ΠΈ JSONDecoder.



pickle.dumps / pickle.dump, pickle.loads / pickle.load

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ dump, dumps, load ΠΈ loads модуля pickle Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ ΠΏΠΎ своСму ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ функциям модуля JSON, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ строками ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.



ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ protocol Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π·Π°Π΄Π°Ρ‘Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. ПослСднюю Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ константу pickle.HIGHEST_PROTOCOL, Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ – pickle.DEFAULT_PROTOCOL.



На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания Π΄Π°Π½Π½ΠΎΠ³ΠΎ тСкста сущСствуСт ΠΏΡΡ‚ΡŒ вСрсий ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°:



0 ΠΈ 1 – это ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ вСрсии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались Π² Python 2.2 ΠΈ Π½ΠΈΠΆΠ΅;

2 – это основная вСрсия ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° для Python 2;

3 – вСрсия ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, которая появилась Π² Python 3, стандартный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π² Python 3 Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ дСсСриализован Π² Python 2;

4 – вСрсия ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, появившаяся Π² Python 3.4, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ большиС ΠΏΠΎ ΠΎΠ±ΡŠΡ‘ΠΌΡƒ памяти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ большСС количСство Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

5 - вСрсия ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, появившаяся Π² Python 3.8. Он добавляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… out-of-band ΠΈ ускорСниС для in-band Π΄Π°Π½Π½Ρ‹Ρ…. PEP 574 Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описываСт измСнСния.



@python_job_interview