Qual è il modo migliore per archiviare e recuperare un dt python in un database?Python, memorizza un dict in un database
risposta
Una domanda abbastanza vaga dipende molto dai casi d'uso.
In genere si era appena serializzare e inserirla laddove è stato necessario, ma se avete bisogno di dict si lascia "del database-like", allora è possibile utilizzare uno dei many of the available key/value stores for Python
Se il dict corrisponde direttamente in una tabella di database, è necessario impostare una tabella con uno schema contenente due colonne: key
e value
. Quindi per ogni elemento del dict, basta inserirlo nel database o aggiornarlo se la chiave è già in posizione, ecc.
Altrimenti si potrebbe usare pickle per serializzare il dict su una stringa, e quindi si potrebbe semplicemente salva la stringa nel DB. Ma in generale non consiglierei questa soluzione dato che non è possibile interrogare i dati serializzati.
Se non si è specificamente interessati all'utilizzo di un database SQL tradizionale, ad esempio MySQL, è possibile esaminare database di documenti non strutturati in cui i documenti vengono mappati naturalmente a dizionari Python, ad esempio MongoDB. Il MongoDB python bindings consente di inserire solo dicts nel DB e interrogarli in base ai valori nel dict. Si veda ad esempio il codice di seguito dal tutorial:
>>> from pymongo import Connection
>>> connection = Connection()
>>> db = connection['test-database']
>>> import datetime
>>> post = {"author": "Mike",
... "text": "My first blog post!",
... "tags": ["mongodb", "python", "pymongo"],
... "date": datetime.datetime.utcnow()}
>>> posts = db.posts
>>> posts.insert(post)
ObjectId('...')
>>> posts.find_one({"author": "Mike"})
{u'date': datetime.datetime(...), u'text': u'My first blog post!', u'_id': ObjectId('...'), u'author': u'Mike', u'tags': [u'mongodb', u'python', u'pymongo']}
+1. Come cool! Grazie per l'esempio. – bernie
heh, sì, è abbastanza bello;). Recentemente ho iniziato a giocare con MongoDB ed è davvero carino visto che il modello di documento è basato su Binary JSON. Dato che sto suonando come una pubblicità qui, c'è persino un servizio di hosting online gratuito (gratuito per 16 MB): https://mongohq.com/home: p – catchmeifyoutry
"Best" è discutibile.
Se è necessario un DBMS, sqlite è integrato; quindi potrebbe essere considerato un metodo più semplice rispetto ad altri modi menzionati.
import sqlite3
conn = sqlite3.connect(':memory:')
c = conn.cursor()
c.execute("create table kv (key text, value integer);")
# <sqlite3.Cursor object at 0x00C62CE0>
d = {'a':1,'b':2}
c.executemany("insert into kv values (?,?);", d.iteritems())
# <sqlite3.Cursor object at 0x00C62CE0>
c.execute("select * from kv;").fetchall()
# [(u'a', 1), (u'b', 2)]
- 1. convertire un dict per dict ordinato in python
- 2. C'è un modo per impostare più valori predefiniti su un dict Python usando un altro dict?
- 3. Come ordinare un dict Python per valore
- 4. Aggiornare un dict con parte di un altro dict
- 5. python dict dettagli di implementazione
- 6. Memorizza i dati statici in un array o in un database?
- 7. Python: ottenere un dict da un elenco basato su qualcosa all'interno del dict
- 8. Blocco di dict in Python?
- 9. convertire xml in python dict
- 10. Python conta elementi in valore dict che è un elenco
- 11. Serializzare un dict Python in una Cassandra 1.2 colonna
- 12. Python: voci di elenco di gruppo in un dict
- 13. Come convertire un pymongo.cursor.Cursor in un dict?
- 14. python tuple a dict
- 15. python dict set min_size
- 16. equivalente di un dict pitone in R
- 17. memorizza ogni classe in un file separato python
- 18. Python dict incomprensione
- 19. Perché la dimensione di un dict vuoto è uguale a quella di un dict non vuoto in Python?
- 20. Come convertire un OrderedDict in un dict regolare python3
- 21. Mock un database MySQL in Python
- 22. Python: creare un dizionario usando dict() con chiavi integer?
- 23. Utilizzo di un dict Python per un'istruzione SQL INSERT
- 24. Come si memorizza al meglio un elenco di numeri in un database relazionale?
- 25. Elenco tuple da dict in Python
- 26. Python discarica dict in file JSON
- 27. Conversione stringa di biscotto in Python dict
- 28. Python dict.get() con dict multidimensionale
- 29. Efficienza dict.has_key ed inserire dict in Python
- 30. Come creare un singolo dict Python da un elenco di dict sommando i valori con le chiavi comuni?
Diverso dalla serializzazione? –