2016-11-05 55 views
12

To pytanie od studenta, na które nie miałem dobrej odpowiedzi. Czasami widziałem .pickle, .pck, .pcl i .db dla plików, które zawierają pikle Pythona, ale nie jestem pewien, co jest najczęstszą praktyką. Wiem, że te ostatnie trzy rozszerzenia są również używane do innych rzeczy.Preferowane (lub najczęstsze) rozszerzenie plików pikle?

Z tym pytaniem wynika, jaki typ MIME jest preferowany do przesyłania pikli między systemami za pomocą interfejsu API REST?

+1

Co zabawne jest to, że jestem pewien, że kiedyś czas, w którym użyłem .pkl. – idjaw

+1

Z jakiegoś powodu nie ma tego w dokumencie Python 3, ale w dokumencie Python 2 i podając 'pkl' -> https://docs.python.org/2/library/pickle.html#example – idjaw

+3

Unikaj kiszek wszędzie tam, gdzie to możliwe . Jest powód, dla którego doktorzy ostrzegają przed używaniem marynaty - to nie jest bezpieczne, nigdy nie było bezpieczne i nigdy nie będzie bezpieczne. Zamiast tego użyj modułu json. – KingRadical

Odpowiedz

11

Z Python 2 docs:

output = open('data.pkl', 'wb')

Wskutek wybrałbym .pkl jako rozszerzenie.

typ MIME z poniższym komentarzem:

application/octet-stream byłoby lepiej, niezależnie od protokołu

Zobacz What is the HTTP "content-type" to use for a blob of bytes?

+0

'text/plain' może nie działać w zależności od używanego protokołu pikowania - wersja protokołu 0 jest jedyną wersją ASCII. – martineau

+1

To powiedziawszy, myślę, że 'application/oktet-stream' byłby lepszy bez względu na protokół - zobacz pytanie [" Co to jest typ zawartości HTTP ", aby użyć dla blobu bajtów? _] (Http: // stackoverflow. com/questions/13223855/what-is-the-http-content-type-to-use-for-a-blob-bytes) – martineau