Implementacija serijalizatora MessagePack za Python msgpack.org[Python]

Isprobajte Naš Instrument Za Uklanjanje Problema

Implementacija serijalizatora MessagePack za Python msgpack.org[Python]

MessagePack za Python

Što je ovo

MessagePack je učinkovit format binarne serijalizacije. Omogućuje vam razmjenu podataka između više jezika kao što je JSON. Ali brži je i manji. Ovaj paket pruža CPython povezivanja za čitanje i pisanje MessagePack podataka.

Vrlo važne napomene za postojeće korisnike

Naziv PyPI paketa

Naziv paketa na PyPI je promijenjen iz |_+_| do |_+_| od 0,5.

Prilikom nadogradnje s msgpack-0.4 ili starije, učinite |_+_| prije |_+_|.



Kompatibilnost sa starim formatom

Možete koristiti |_+_| mogućnost pakiranja |_+_| objekt u sirovi tip u staroj specifikaciji msgpacka, umjesto tipa bin u novoj specifikaciji msgpacka.

Stari format msgpacka možete raspakirati pomoću |_+_| opcija. Raspakira str (raw) tip u msgpacku u Python bajtove.

react-native popis kartica

Pogledajte napomenu u nastavku za detalje.

Velike prijelomne promjene u msgpacku 1.0

Python 2

  • Modul proširenja više ne podržava Python 2. Čista implementacija Pythona (|_+_|) koristi se za Python 2.

Paker

  • |_+_| prema zadanim postavkama. bajtovi su kodirani u bin tipu u msgpacku. Ako još uvijek koristite Python 2, morate koristiti unicode za sve vrste nizova. Možete koristiti |_+_| za kodiranje u stari format msgpack.
  • |_+_| opcija je uklonjena. Uvijek se koristi UTF-8.

Raspakiravač

  • |_+_| prema zadanim postavkama. Pretpostavlja da su tipovi str valjani UTF-8 niz i dekodira ih u Python str (unicode) objekt.
  • |_+_| opcija je uklonjena. Možete koristiti |_+_| za podršku starom formatu.
  • Zadana vrijednost |_+_| se mijenja od 0 do 100 MiB.
  • Zadana vrijednost |_+_| mijenja se u True kako bi se izbjegli hashdo problemi. Morate proći |_+_| ako imate podatke koji sadrže ključeve karte čiji tip nije bajt ili str.

Instalirati

|_+_|

Implementacija čistog Pythona

Modul proširenja u msgpacku (|_+_|) ne podržava Python 2 i PyPy.

gdje kupiti sandbox kripto

Ali msgpack pruža čistu implementaciju Pythona (|_+_|) za PyPy i Python 2.

Windows

Kada ne možete koristiti binarnu distribuciju, trebate instalirati Visual Studio ili Windows SDK na Windows. Bez proširenja, korištenje čiste Python implementacije na CPython radi sporo.

Kako koristiti

NAPOMENA: U primjerima u nastavku koristim |_+_| i |_+_| za korisnike koji koriste msgpack<1.0. These options are default from msgpack 1.0 so you can omit them.

Jednokratno pakiranje i raspakiranje

Koristite |_+_| za pakiranje i |_+_| za raspakiranje. msgpack pruža |_+_| i |_+_| kao alias za kompatibilnost s |_+_| i |_+_|.

|_+_| i |_+_| pakira u objekt sličan datoteci. |_+_| i |_+_| raspakira iz objekta nalik datoteci.

|_+_|

|_+_| raspakira niz msgpacka na Pythonov popis, ali se također može raspakirati u tuple:

|_+_|

Uvijek biste trebali navesti |_+_| argument ključne riječi za kompatibilnost unatrag. U nastavku pogledajte probleme s izvedbom koji se odnose na |_+_|_.

Pročitajte niz dokumenata za druge opcije.

Streaming raspakiranje

|_+_| je 'raspakiravac strujanja'. Raspakira više objekata iz jednog streama (ili iz bajtova dobivenih putem metode |_+_|).

|_+_|

Pakiranje/otpakiranje prilagođenog tipa podataka

Također je moguće pakirati/raspakirati prilagođene tipove podataka. Evo primjera za |_+_|.

|_+_|

|_+_| je |_+_| povratni poziv prima dikt; |_+_| povratni poziv se umjesto toga može koristiti za primanje popisa parova ključ-vrijednost.

kako vidjeti izbrisani twitter račun

Prošireni tipovi

Također je moguće pakirati/raspakirati prilagođene tipove podataka pomoću ekst tip.

|_+_|

Napredna kontrola raspakiranja

Kao alternativa iteraciji, |_+_| objekti pružaju |_+_|, |_+_|, |_+_| i |_+_| metode. Prva dva čitaju cijelu poruku iz streama, redom deserijalizirajući i vraćajući rezultat, ili ga ignorirajući. Posljednje dvije metode vraćaju broj elemenata u nadolazećem spremniku, tako da se svaki element u nizu ili par ključ-vrijednost u mapi može zasebno raspakirati ili preskočiti.

Bilješke

string i binarni tip

Rane verzije msgpacka nisu razlikovale string i binarne tipove. Imenovan je tip za predstavljanje string i binarnih tipova sirovo .

Možete pakirati i raspakirati ovu staru specifikaciju koristeći |_+_| i |_+_| opcije.

|_+_|

ext vrsta

Za korištenje ekst tip, prolaz |_+_| objekt pakeru.

|_+_|

Možete ga koristiti s |_+_| i |_+_|. Pogledaj ispod.

Sigurnost

Za raspakiranje podataka primljenih iz nepouzdanog izvora, msgpack nudi dvije sigurnosne mogućnosti.

|_+_| (zadano: |_+_|) ograničava veličinu unutarnjeg međuspremnika. Također se koristi za ograničavanje unaprijed dodijeljene veličine popisa.

kako promijeniti fontove u google chrome

|_+_| (zadano: |_+_|) ograničava tip ključeva karte na bajtove i str. Iako specifikacija msgpacka ne ograničava tipove ključeva karte, postoji rizik od hashdo grešaka. Ako trebate podržati druge tipove za ključeve karte, koristite |_+_|.

Savjeti za izvedbu

CPythonov GC počinje kada raste dodijeljeni objekt. To znači da raspakiranje može uzrokovati beskorisni GC. Možete koristiti |_+_| prilikom raspakiranja velike poruke.

Popis je zadana vrsta sekvence Pythona. Ali tuple je lakši od liste. Možete koristiti |_+_| tijekom raspakiranja kada je izvedba važna.

Autor: Msgpack
Izvorni kod: https://github.com/msgpack/msgpack-python
Licenca: Pregledajte licencu

#podaci #piton

Vidi Također: