Charger le fichier pickle (vient de python3) dans python2
J'ai un cornichon fichier, avec
>>> with open("wikilinks.pickle", "rb") as f:
... titles, links = pickle.load(f)
...
>>> len(titles)
13421
Je peux le charger dans python3.
Cependant, lorsque j'essaie de le charger en python2, j'obtiens ce message:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/usr/lib/python2.7/pickle.py", line 1378, in load
return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 886, in load_proto
raise ValueError, "unsupported pickle protocol: %d" % proto
ValueError: unsupported pickle protocol: 3
Donc comment le charger dans python2?
source d'informationauteur epx
Vous devez vous connecter pour publier un commentaire.
La par défaut le décapage protocole utilisé par défaut dans Python 3 est incompatible avec le protocole utilisé par Python 2. Toutefois, si vous pouvez modifier le code qui produit
wikilink.pickle
tu peux utiliser l'un des protocoles antérieurs (0, 1, ou 2) qui Python 2 comprendrez très bien.Soyez averti, cependant, que Python 3 chaînes sont des chaînes Unicode Python 2, ce qui peut être surprenant dans certains cas d'utilisation.
Lire dans python3 et l'enregistrer en tant que python2 format
Ensuite, vous pouvez charger
a_py2.pkl
en python2.