Ho una lista che assomiglia a questo:Python salamoia/deserializzazione un elenco a/da un file
a = [['a string', [0, 0, 0], [22, 'bee sting']], ['see string',
[0, 2, 0], [22, 'd string']]]
e sto avendo problemi di salvataggio e il recupero di esso.
posso risparmiare ok con salamoia:
with open('afile','w') as f:
pickle.dump(a,f)
ma ottenere il seguente errore quando provo a caricarlo:
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'
avevo pensato che avrei potuto convertire in una matrice NumPy e utilizzare save
, savez
o savetxt
. Tuttavia ho il seguente errore:
>>> 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
Invece di pickle.load ('afile') fare pickle.load (aperta ('afile')) –
Certo! grazie - Perché non lo metti come risposta .. – atomh33ls
Non puoi convertire facilmente ciò che hai in un 'numpy.array' dato che ha una forma irregolare. Dovresti creare un grande array regolare e poi riempire tutti i dati con 'NaN' o qualcosa del genere ... essenzialmente ciò che' pandas' fa per te. Probabilmente è eccessivo per la tua piccola lista, comunque. –