json.dumps
を使用してPythonオブジェクトをJSONにシリアル化しようとしています。 json.dumps
を使用してdict
をシリアル化する場合、明らかにJSON辞書{..}
としてシリアル化されます。 list
またはtuple
をシリアル化すると、JSON配列になります。可能であれば、Python dictをリストとしてJSONに変換する方法
可能であれば、Python dict
をJSON list
として簡単にシリアル化する方法があるかどうかを知りたいと思います。
{0:'data',1:'data',2:'data}
上記のようにJSONにシリアライズされます::'{"0": "data", "1": "data", "2": "data"}'
が、私はそれがキー以来['data','data','data']
としてシリアライズされたいキーは0から開始し、例えば、配列決定されている場合は、可能であれば、私は意味します0から始まり、シーケンスされます。
私は、PHPからシリアル化されたたくさんのJSONデータがあるためです.PHP配列にはキーがあり、上記のようにキーの順序が決められていれば、PHPのjson.encode
は配列を使用しますJSONディクショナリとしてシリアル化されています。 JSONのシリアル化をPHPとPythonのコードの両方に一致させたい残念ながら、私の場合、PHPコードの変更はオプションではありません。
提案がありますか?私が見つけた唯一の解決策は、それぞれのPython辞書を検証し、最初にlist
に変換してjson.dumps
の前に変換できるかどうかを確認する独自の関数を書くことです。
EDIT:私はシリアル化しています。このオブジェクトは、それはように、追加のそれの内部dicts、およびリスト、および(ネスティング)を持つことができるだけでなくlist
またはdict
、可能性があります。私は、これを行うための "シンプルな"方法があるのだろうかと思っています。そうでなければ、自分で再帰的な解決法を書くことができると思います。しかし、より多くのバグを避けるために既存のコードを使用する方が常に良いです。
'dict.values()'がpy3kで動作するかどうかはわかりません。また、FWIWのdictsは順序付けされたデータ型ではないので、json.dumps(list(dict.values()))を実行しても、シリアル化されたリストの順序はよく定義されますが、 – mgilson