Domanda

Voglio scegliere un elenco in quanto mi ci vuole molto tempo per creare l'elenco. L'elenco è costituito da valori "N" a 2 tuple in cui il primo valore della tupla è un dizionario di grandi dimensioni (tasti da 1K a 10K) e il secondo valore è una stringa. N può essere grande come 100 a 1000. Vorrei salvare tale struttura di dati in modo da poterlo caricarla per comodità. Se l'elenco è leggibile dall'uomo sarebbe fantastico, ma non a costo delle prestazioni.

Sono a conoscenza Accantonare, Pyyaml, cpickle e JSON. Non sono sicuro di cosa usare date i miei dati. La lettura iniziale su vari altri thread su questo sito Web e Internet afferma che Cpickle potrebbe essere la scelta migliore. Qualche pensiero dai guru qui?

È stato utile?

Soluzione

io userei cPickle, funziona bene,

# Dummy data
from random import randint as r

a,b = 97,123

d = [(dict([(chr(r(a,b)),j) for j in range(1000)]),
       ''.join([chr(r(a,b)) for i in range(5)])) 
                            for j in range(100)]

# Pickle it
import cPickle as pickle

f = open('store.dat','w')
pickle.dump(d,f)
f.close()

Considererei anche di usare qualcosa di simile Dumbdbm.

Aggiunto più tardi

A seguito dell'esempio sopra, puoi fare qualcosa del genere,

import dumbdbm as dbm

g = dbm.open('store.db')
g.update([(str(i),pickle.dumps(j)) for i,j in enumerate(d)])
g.close()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top