Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

804
Views
pickle.load falla en (protocolo = 4) objetos de python 3.7 cuando se usa python 3.8+ (con protocolo predeterminado = 5)

Python cambió su protocolo pickle a 4 en python 3.4 a 3.7 y nuevamente lo cambió a protocol=5 en python 3.8. ¿Cómo abro archivos en escabeche más antiguos en python 3.8?

Lo intenté:

 >>> with open('data_frame_111.pkl','rb') as pfile: ... x1 = pickle.load(pfile) ... Traceback (most recent call last): File "<stdin>", line 2, in <module> AttributeError: Can't get attribute 'new_block' on <module 'pandas.core.internals.blocks' from '/opt/anaconda3/lib/python3.8/site- packages/pandas/core/internals/blocks.py'>

y

 >>> with open('data_frame_111.pkl','rb') as pfile: ... x1 = unpkl.load(pfile, protocol=4)

pero mientras que el protocolo es una palabra clave en pickle.dump , no es parte de pickle.load . Crear una instancia pickle.Unpickler() tampoco funciona. Pero obviamente debería haber una manera.

En python 3.7, import pickle5 y lo usaría para abrir pickle más nuevos, pero no puedo encontrar documentación sobre cómo hacer lo contrario en python 3.8.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

with open('data_frame_111.pkl','rb') as pfile: x1 = pickle.load(pfile)

Intenta cambiar a:

 import pandas as pd with open('data_frame_111.pkl','rb') as pfile: x1 = pd.read_pickle(pfile)

Parece que ha habido algunos cambios debido a problemas de vulnerabilidad de seguridad.

over 4 years ago · Santiago Trujillo Report

0

Debe actualizar a la última versión (1.3.1 funcionó para mí) de pandas. O, para ser más precisos, la versión de pandas cuando hiciste pickle.dump(some_path) debería ser la misma versión de pandas que cuando hiciste pickle.load(some_path) .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!