Când ar trebui să folosești pickle în loc de JSON în Python


Când se folosește pickle în locul lui JSON în Python și capcanele care decid asta. Pickle restaurează exact mulțimi, tupluri, datetime-uri, clase proprii și grafuri ciclice de obiecte, pentru că octeții nu sunt un format de date, ci instrucțiuni pentru o mașină cu stivă pe care pickle.loads o execută — motiv pentru care o clasă care definește reduce poate numi orice obiect apelabil de rulat la încărcare și motiv pentru care deserializarea datelor neîncrezătoare înseamnă execuție arbitrară de cod, pe care nicio inspecție a octeților nu o previne. Explică a doua cuplare, faptul că un pickle stochează calea de modul și numele unei clase, nu definiția ei, deci redenumirea sau mutarea unei clase strică încărcăturile stocate. Acoperă ce schimbă tăcut JSON la un dus-întors, cu tuplurile întorcându-se ca liste și cheile de dicționar care nu sunt șiruri ca șiruri. Include cod rulabil și ieșire reală pentru toate trei, plus semnarea, PicklingError la lambda, versiunile de protocol și cârligele default și object_hook din json.

Comentarii

Niciun comentariu încă. Fii primul care își împărtășește părerea.
Nivel mediu
0,0 (0)

Autor

Software engineer and the creator of the Bytestark learning platform