Je suis aux prises avec le problème suivant: je veux convertir un OrderedDict
comme celui-ci:
OrderedDict([('method', 'constant'), ('data', '1.225')])
dans un dict régulier comme celui-ci:
{'method': 'constant', 'data':1.225}
car je dois le stocker sous forme de chaîne dans une base de données. Après la conversion, la commande n'est plus importante, donc je peux quand même épargner la fonction commandée.
Merci pour tout indice ou solution,
Ben
repr(dict(OrderedDict([('method', 'constant'), ('data', '1.225')])))
?Réponses:
Cependant, pour le stocker dans une base de données, il serait bien préférable de le convertir dans un format tel que JSON ou Pickle. Avec Pickle, vous préservez même la commande!
la source
json
trop .Même s'il s'agit d'une question vieille d'un an, je voudrais dire que l'utilisation
dict
ne vous aidera pas si vous avez un dict ordonné dans le dict ordonné. Le moyen le plus simple de convertir ces dict ordonnés récursifs serala source
Il est facile de convertir votre
OrderedDict
en un régulierDict
comme ceci:Si vous devez le stocker sous forme de chaîne dans votre base de données, l'utilisation de JSON est la solution. C'est aussi assez simple, et vous n'avez même pas à vous soucier de la conversion en régulier
dict
:Ou vider les données directement dans un fichier:
la source
Si vous recherchez une version récursive sans utiliser le
json
module:la source
Voici ce qui semble le plus simple et fonctionne en python 3.7
Maintenant pour vérifier ceci:
REMARQUE: cela fonctionne également et donne le même résultat -
Ainsi que cette -
À votre santé
la source
Si vous voulez une solution simple mais différente, vous pouvez utiliser la
{**dict}
syntaxe:la source
Sa manière simple
la source