ホームページ  >  記事  >  バックエンド開発  >  PythonでのJSONシリアル化の詳細な分析

PythonでのJSONシリアル化の詳細な分析

不言
不言転載
2018-09-30 14:02:472768ブラウズ

この記事は、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 を追加することに注意してください #

with open("data.json", "w", encoding="UTF-8") as f: 
    s = json.dump(data, f, ensure_ascii=False)

运行此文件之后在统计目录下会有一个data.json文件

反序列化

load:从一个打开的文件句柄加载数据,注意打开的文件编码

with open("data.json", "r", encoding="UTF-8") as f:
    r = json.load(f)
    print(r)

loads: 从一个对象加载数据

a = json.loads(data) 
print(a)

不加ensure_ascii=False 结果是

加入ensure_ascii=False

a = json.loads(data,ensure_ascii=False)  要注意
print(a)

a=json.loads(input("请输入添加的数据:"),enconding='utf-8')
print(a)

以上がPythonでのJSONシリアル化の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。