Estou lutando com o seguinte problema: Quero converter um OrderedDict
como este:
OrderedDict([('method', 'constant'), ('data', '1.225')])
em um ditado regular como este:
{'method': 'constant', 'data':1.225}
porque tenho que armazená-lo como string em um banco de dados. Após a conversão, o pedido não é mais importante, então posso dispensar o recurso pedido de qualquer maneira.
Obrigado por qualquer dica ou solução,
Ben
repr(dict(OrderedDict([('method', 'constant'), ('data', '1.225')])))
?Respostas:
No entanto, para armazená-lo em um banco de dados, seria muito melhor convertê-lo para um formato como JSON ou Pickle. Com Pickle você ainda preserva o pedido!
fonte
json
muito .Mesmo que esta seja uma pergunta de um ano, gostaria de dizer que usar
dict
não ajudará se você tiver um dict ordenado dentro do dict ordenado. A maneira mais simples de converter esses dict recursivos ordenados seráfonte
É fácil converter seu
OrderedDict
em um normalDict
desta forma:Se você tiver que armazená-lo como uma string em seu banco de dados, usar JSON é o caminho a percorrer. Isso também é bastante simples, e você não precisa se preocupar em converter para um regular
dict
:Ou despeje os dados diretamente em um arquivo:
fonte
Se você está procurando uma versão recursiva sem usar o
json
módulo:fonte
Aqui está o que parece mais simples e funciona em python 3.7
Agora, para verificar isso:
NOTA: Isso também funciona e dá o mesmo resultado -
Assim como isso -
Felicidades
fonte
Se, de alguma forma, você deseja uma solução simples, mas diferente, pode usar a
{**dict}
sintaxe:fonte
Seu jeito simples
fonte