Estoy luchando con el siguiente problema: quiero convertir uno OrderedDict
como este:
OrderedDict([('method', 'constant'), ('data', '1.225')])
en un dictado regular como este:
{'method': 'constant', 'data':1.225}
porque tengo que almacenarlo como una cadena en una base de datos. Después de la conversión, el orden ya no es importante, así que puedo prescindir de la función ordenada de todos modos.
Gracias por cualquier sugerencia o solución,
Ben
repr(dict(OrderedDict([('method', 'constant'), ('data', '1.225')])))
?Respuestas:
Sin embargo, para almacenarlo en una base de datos sería mucho mejor convertirlo a un formato como JSON o Pickle. ¡Con Pickle incluso conservas el orden!
fuente
json
demasiado .Aunque esta es una pregunta de hace un año, me gustaría decir que el uso
dict
no ayudará si tiene un dictado ordenado dentro del dictado ordenado. La forma más sencilla de convertir esos dictados ordenados recursivos seráfuente
Es fácil convertir tu
OrderedDict
a un regularDict
como este:Si tiene que almacenarlo como una cadena en su base de datos, usar JSON es el camino a seguir. Eso también es bastante simple, y ni siquiera tiene que preocuparse por convertir a regular
dict
:O volcar los datos directamente en un archivo:
fuente
Si está buscando una versión recursiva sin usar el
json
módulo:fuente
Esto es lo que parece más simple y funciona en Python 3.7
Ahora para comprobar esto:
NOTA: Esto también funciona y da el mismo resultado:
Tan bien como esto -
Salud
fuente
Si de alguna manera desea una solución simple pero diferente, puede usar la
{**dict}
sintaxis:fuente
Su manera simple
fuente