Python pickle / unpickle une liste dans / d'un fichier
J'ai une liste qui ressemble à ceci:
a = [['a string', [0, 0, 0], [22, 'bee sting']], ['see string',
[0, 2, 0], [22, 'd string']]]
et je rencontre des problèmes de l'enregistrer et de le récupérer.
Je peux l'enregistrer sur ok à l'aide de pickle:
with open('afile','w') as f:
pickle.dump(a,f)
mais recevez le message d'erreur suivant lorsque j'essaie de charger:
pickle.load('afile')
Traceback (most recent call last):
File "<pyshell#116>", line 1, in <module>
pickle.load('afile')
File "C:\Python27\lib\pickle.py", line 1378, in load
return Unpickler(file).load()
File "C:\Python27\lib\pickle.py", line 841, in __init__
self.readline = file.readline
AttributeError: 'str' object has no attribute 'readline'
J'avais pensé que je pourrais convertir un tableau numpy et l'utilisation save
savez
ou savetxt
. Cependant j'obtiens l'erreur suivante:
>>> np.array([a])
Traceback (most recent call last):
File "<pyshell#122>", line 1, in <module>
np.array([a])
ValueError: cannot set an array element with a sequence
source d'informationauteur atomh33ls
Vous devez vous connecter pour publier un commentaire.
Décidé de faire une réponse. cornichon.la méthode de chargement s'attend à obtenir un fichier comme objet, mais vous êtes en fournissant une chaîne de caractères au lieu de cela, et donc une exception. Ainsi, au lieu de:
que vous devez faire:
À ajouter à @ Rapolas K réponse:
J'ai trouvé que j'avais des problèmes avec le fichier ne ferme pas donc utilisé cette méthode: