「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > JSON出力のキーの順序は、「json.dumps」を使用してPython辞書の順序とは異なるのですか?

JSON出力のキーの順序は、「json.dumps」を使用してPython辞書の順序とは異なるのですか?

2025-02-06に投稿しました
ブラウズ:104

Why is the order of keys in my JSON output different from the order in my Python dictionary using `json.dumps`?

jsonオブジェクトの「json.dumps」?

インポートJSON countrys.append({"id":row.id、 "name":row.name、 "timezone":row.timezone}) print(json.dumps(countries、sort_keys = true)) これは、jsonを次の順序で出力します:

[[ {"id":1、 "name": "mauritius"、 "timezone":4}、 {"id":2、 "name": "france"、 "timezone":2}、 {"id":3、 "name": "england"、 "timezone":1}、 {"id":4、 "name": "usa"、 "timezone":-4} ]

ソリューション2:OrderedDict

を使用するキーの特定の注文が必要な場合は、「collections.ordereddict」クラスを使用できます。 OrderedDictは、挿入されたキーの順序を保持します。たとえば、

import json

countries.append({"id":row.id,"name":row.name,"timezone":row.timezone})
print(json.dumps(countries, sort_keys=True))

これは、「id」、「name」、および "timezone"の順にjsonを出力します。

[
   {"id": 1, "name": "Mauritius", "timezone": 4}, 
   {"id": 2, "name": "France", "timezone": 2}, 
   {"id": 3, "name": "England", "timezone": 1}, 
   {"id": 4, "name": "USA", "timezone": -4}
]
Python 3.6以降、キーワード引数の順序は辞書に保存されています。つまり、辞書を作成するときに希望の順序でキーを指定するだけで、OrderedDictを使用することと同じ結果を達成できることを意味します:

国= {"id":row.id、 "name": row.name、 "timezone":row.timezone}

これは、出力jsonのキーの順序を自動的に保持します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3