この記事は、Python での JSON シリアル化の詳細な分析を提供します。一定の参考価値があります。必要な友人は参照できます。お役に立てれば幸いです。
なぜこれを書くかというと、私はいつも混乱して間違いやすいからです。書いて大丈夫かどうか確認してください。
シリアル化とは、変数をメモリから変更することを指します。保存または送信できるプロセスはシリアル化 (ダンプを使用) と呼ばれ、変数の内容はシリアル化されたオブジェクトから
# に再読み取りされます。## これは (ロードを使用した) 逆シリアル化と呼ばれます。
#異なるプログラミング言語間でオブジェクトを転送したい場合は、オブジェクトを次のようにシリアル化する必要があります。 XML などの標準形式ですが、より良い方法は、JSON にシリアル化することです。JSON
は文字列として表現され、すべての言語で読み取ることができ、ディスクやディスクに簡単に保存できるためです。ネットワーク経由で送信されます。 JSON は標準形式であるだけでなく、XML よりも高速であり、
Web ページで直接読み込むことができ、非常に便利です。
JSON と Python の組み込みデータの対応
dumps() メソッドは str を返します。その内容は標準の JSON です。同様に、dump() メソッドは JSON を file_Object に直接書き込むことができます。 JSON を
Python オブジェクトに逆シリアル化するには、loads() または対応するload() メソッドを使用します。前者は JSON 文字列を逆シリアル化し、後者は file_Object から文字列を読み取って逆シリアル化します。 #インスタンス
ダンプオブジェクトのシリアル化
data= { "广州市": { "番禺区": ["南村镇", "大石镇", "榄核镇"], "天河区": ["广州塔", "中信广场", "天河又一城"] } } s = json.dumps(data, sort_keys=True, indent=4, ensure_ascii=False) print(s)
#dumps: オブジェクトをシリアル化します sort_keys: キーに従って並べ替えます indent: 4 つのスペースでインデントされ、出力は読みやすいです ensure_ascii: シリアル化できます 非 ASCII コード (中国語など) を変換します
dump: オブジェクトをファイルにシリアル化する
# dump() の最初のパラメータはシリアル化するオブジェクトで、2 番目のパラメータは開いているファイル ハンドルです。ファイルを開くときは、UTF-8 エンコーディングで Open を追加することに注意してください # 运行此文件之后在统计目录下会有一个data.json文件 反序列化 load:从一个打开的文件句柄加载数据,注意打开的文件编码 loads: 从一个对象加载数据 不加ensure_ascii=False 结果是 加入ensure_ascii=False 以上がPythonでのJSONシリアル化の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。with open("data.json", "w", encoding="UTF-8") as f:
s = json.dump(data, f, ensure_ascii=False)
with open("data.json", "r", encoding="UTF-8") as f:
r = json.load(f)
print(r)
a = json.loads(data)
print(a)
a = json.loads(data,ensure_ascii=False) 要注意
print(a)
a=json.loads(input("请输入添加的数据:"),enconding='utf-8')
print(a)