Pickle-загрузка более 1 строки файла модели pkl - PullRequest
1 голос
/ 29 марта 2019

Файл, о котором идет речь, имеет следующие строки при открытии с помощью Notepad ++:

€X   Neural Networksq .€]q (X   ClassificationqKX      Team1 winq]q(X   Team1qX   Team2qe]q(X
Team1_rankqX
Team2_rankqX   Diff1q   X   Diff2q
e}q(hcpandas.core.indexes.base
_new_Index
qcpandas.core.indexes.base
Index
q

и т. Д.Есть много символов, которые не показаны выше в файле pkl.

Ниже приведены коды, которые я пытался прочитать / разобрать в файл для чтения:

С pickle:

import pickle; pickle.HIGHEST_PROTOCOL
with open(r"somefile.pkl", 'rb') as f:
data = pickle.load(f)
print (data)

С пандами:

import pandas as pd
up_df = pd.read_pickle(r"somefile.pkl")
print (up_df)

В обоих случаях я получаю объект str, который пишет только «Нейронная сеть»

My somefile.pkl is63kb в размере и, очевидно, имеет байт-код?(угадывая это) в этом.Как мне преобразовать его во что-нибудь читаемое?

1 Ответ

0 голосов
/ 30 марта 2019

Возможно, к файлу pickle добавлено несколько объектов.Попробуйте что-то вроде -

objects = []
with open(filename, 'rb') as f:
data = pickle.load(f)
    while True:
        try:
            objects.append(pickle.load(filename))
        except EOFError:
            break

См. Как прочитать файл рассола?

...