Pythonディクショナリjsonソートフォーマット書き込みファイル(美観を保証+比較検索しやすい)


JSON(JavaScript Object Notation)は、軽量レベルのデータ交換フォーマットです.(xmlファイルに代わる強力なライバルとして)ECMAScriptのサブセットに基づいている.JSONは言語から完全に独立したテキスト形式を採用しているが、C言語ファミリーに似た習慣(C、C++、Java、JavaScript、Perl、Pythonなど)も使用されている.これらの特性はJSONを理想的なデータ交換言語にした.読み取りと作成が容易であり、機械の解析と生成も容易である(ネットワーク伝送速度の向上に一般的に用いられる).
ここでは主にPythonのjsonパッケージを紹介し,import jsonでインポートする.
json:文字列とpythonデータ型間の変換jsonモジュールには、dumps、dump、loads、loadの4つの機能があります.
  • dumpsデータ型を文字列
  • に変換する
  • dumpデータ型を文字列に変換してファイルに格納
  • .
  • loads文字列をデータ型
  • に変換
  • loadファイルを開く文字列からデータ型に変換
  • 方法一:dump——一言でフォーマット転換+ファイル書き込み機能を完成する
    dumpはdumps+fileに相当する.writeの2つの機能は、1つの文で問題を解決する利点があります.
    共通パラメータ:
    パラメータ名
    説明する
    obj
    jsonファイルに格納するpythonオブジェクト
    fp
    ファイルハンドル
    ensure_ascii
    Falseに設定すると中国語を中国語でファイルに保存できます.そうしないと「xXxXX」となります.
    indent
    インデントされたスペースの数を0以外の値に設定すると、フォーマットの効果があり、比較的美しいです.
    例:
    import json
    data = {
         579:356, 215:382, 338:400}
    with open('file.json', 'w') as jsonfile:
    	json.dump(data, f)
    	#     
    	# {"title":"githubOfFarmertian","name":"farmertian","url":"https://github.com/TLGits","description":"www"}
    	json.dump(data, f, indent=4)
    	#     
    	# {
         
        #	"title":"githubOfFarmertian",
        #	"title":"farmertian",
        #	"url":"https://github.com/TLGits",
        #	"description":"www"
    	# }
    

    つまりjson.dump()を使うときにindentパラメータの値を設定すれば良いのです.出力の結果のフォーマットを保証できます.
    欠点:各グループの対応データが整列なしの場合、dump関数でソートを設定できず、出力の順序が混乱します.-強迫症患者のやり方–以下を参照:
    方法2:dumps-dumpsを使用してソートし、ファイルに書き込む
    dataデータ:data = {579:356, 215:382, 338:400}
    次にkey値(579215338)に基づいてdata辞書のソートを行い、jsonファイルに書き込むことを望む.
    メソッド1のみを使用した場合、出力された結果は次のとおりです(ソートされていません).
    {
        "579":356,
        "215":382,
        "338":400,
    }
     
       
       
       
       

    解决方案:

    使用dumps方法先进行排序和格式化:sort_keys=True,确定排序顺序,indent确定格式化,生成jsonOrderedFile为str类型的数据,然后直接打开文件并写入。

    import json
    data = {
         579:356, 215:382, 338:400}
    jsonOrderedFile = json.dumps(data, sort_keys=True, indent = 4)
    with open('file.json', 'w') as jsonfile:
        jsonfile.write(jsonOrderedFile)
    

    出力結果(file.jsonファイルに保存されているデータ):{ "215":382, "338":400, "579":356, }とても完璧hhh!!!
    もしあなたに役に立つと感じたら、「いいね」をクリックして、波に注目して、ブロガーを励まして更新し続けてください.