J'ai un dictionnaire assez volumineux avec environ 40 millions de clés que j'ai stocké naïvement juste en écrivant {key: value, key: value, ...}
dans un fichier texte. Je n'ai pas considéré le fait que je ne pourrais jamais accéder de manière réaliste à ces données car python a une aversion pour le chargement et l'évaluation d'un fichier texte de 1,44 Go en tant que dictionnaire.Alternative à un très grand dictionnaire (~ 40 millions de clés)
Je sais que je pourrais utiliser quelque chose comme shelve
pour pouvoir accéder aux données sans les lire toutes à la fois, mais je ne suis pas sûr de savoir comment je pourrais même convertir ce fichier texte en fichier shelve sans régénérer toutes les données (que je préférerais ne pas faire). Existe-t-il de meilleures alternatives pour stocker, accéder et potentiellement modifier plus tard autant de données? Si non, comment devrais-je convertir cette monstruosité en un format utilisable par shelve?
S'il importe, le dictionnaire est de la forme {(int, int, int int): [[int, int], Bool]}
Utilisez une base de données? – Alexander
Utilisez sqlite - Python a un bon support dans la bibliothèque standard. –
Pour ajouter au commentaire d'Alexander, ['sqlite3'] (https://docs.python.org/3.6/library/sqlite3.html) est probablement la plus petite barrière à l'entrée ... – mgilson