2017-06-15 2 views
2

Comment puis-je pickle os.environ dans Python 3?Comment décaper os.environ dans Python 3?

>>> import os, pickle 
>>> pickle.dumps(os.environ) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: Can't pickle local object '_createenviron.<locals>.decode' 

Les travaux ci-dessus en Python 2.

+0

Considérant comment 'os.environ' est censé être lié à l'état réel des variables d'environnement du programme, ce ne serait probablement pas une bonne idée de défaire l'un d'entre eux de toute façon. Vous pouvez décaper et décompiler 'dict (os.environ)' facilement. – user2357112

+3

Que diriez-vous de le convertir en dictionnaire? 'pickle.dumps (dict (os.environ))' – falsetru

Répondre

4

Vous pouvez faire:

import os, pickle 

pickle.dumps(str(os.environ)) 
pickle.dumps(dict(os.environ)) # this also works 
+0

Et sur unpickling ne remplace pas os.environ - mettre à jour: 'os.environ.update (pickle.loads (données))'. – phd