インメモリデータのシリアル化の例
1. 目的
メモリ内のデータをシリアル化する必要があります。つまり、ファイルに書き込む場合、書き込まれる型は文字列型またはバイナリ型のみです。ただし、リスト、辞書、関数など、より複雑なデータ型をシリアル化したい場合は、json または pickle を使用する必要があります。
2. jsonシリアル化
1、シリアル化をダンプし、逆シリアル化をロードします
dumpsはデータ型を文字列に変換します
import json info = { 'name': 'The Count of Monte Cristo', 'type': 'Movie' } data = json.dumps(info) print(data) print(type(data)) # 输出 {"name": "The Count of Monte Cristo", "type": "Movie"} <class 'str'>
loadsは文字列をデータ型に変換します
import json get_info = json.loads(data) print(get_info['name']) print(get_info) print(type(get_info)) #输出 The Count of Monte Cristo {'name': 'The Count of Monte Cristo', 'type': 'Movie'} <class 'dict'>
2 .dumpシリアル化とload deserialization
dumpはデータ型を文字列に変換してファイルに保存します
import json info = { 'name': 'The Count of Monte Cristo', 'type': 'Movie' } with open("test.txt", "w", encoding="utf-8") as f: json.dump(info, f) # 第一个参数是内存中的数据对象,第二个参数是文件句柄 #写入文件中的内容 {"name": "The Count of Monte Cristo", "type": "Movie"}
loadはファイルを開き文字列からデータ型に変換します
import json with open("test.txt", "r", encoding="utf-8") as f: data_from_file = json.load(f) print(data_from_file['name']) print(data_from_file) print(type(data_from_file)) #输出 The Count of Monte Cristo {'name': 'The Count of Monte Cristo', 'type': 'Movie'} <class 'dict'>
3.json関数をシリアル化します
import json def test(name): print("hello,{}".format(name)) info = { 'name': 'The Count of Monte Cristo', 'type': 'Movie', 'func': test } data = json.dumps(info) #输出 File "G:/python/untitled/study6/json&pickle模块.py", line 22, in <module> data = json.dumps(info) File "G:\python\install\lib\json\__init__.py", line 230, in dumps return _default_encoder.encode(obj) File "G:\python\install\lib\json\encoder.py", line 198, in encode chunks = self.iterencode(o, _one_shot=True) File "G:\python\install\lib\json\encoder.py", line 256, in iterencode return _iterencode(o, 0) File "G:\python\install\lib\json\encoder.py", line 179, in default raise TypeError(repr(o) + " is not JSON serializable") TypeError: <function test at 0x0000021B13C57F28> is not JSON serializable
1. JSON は辞書、リスト、文字列などの単純なデータ型のみを処理でき、関数などの複雑なデータ型は処理できません。
2. jsonはすべての言語に共通であり、Pythonが他の言語とデータをやり取りする必要がある場合は、json形式を使用します
3. pickleシリアル化。
pickle 使い方は上記と同じですが、pickleでシリアル化されるデータ型はバイナリであり、pickleはPythonでのみ使用できます。
1.ダンプ&&ロード
import pickle def test(name): print("hello,{}".format(name)) info = { 'name': 'The Count of Monte Cristo', 'type': 'Movie', 'func': test } data = pickle.dumps(info) print(data) print(type(data)) #输出 b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x19\x00\x00\x00The Count of Monte Cristoq\x02X\x04\x00\x00\x00typeq\x03X\x05\x00\x00\x00Movieq\x04X\x04\x00\x00\x00funcq\x05c__main__\ntest\nq\x06u.' <class 'bytes'>
import pickle get_data = pickle.loads(data) get_data['func']('cat') print(get_data) #输出 hello,cat {'name': 'The Count of Monte Cristo', 'type': 'Movie', 'func': <function test at 0x00000235350A7F28>}
2.ダンプ&&ロード
import pickle def test(name): print("hello,{}".format(name)) info = { 'name': 'The Count of Monte Cristo', 'type': 'Movie', 'func': test } with open('test.txt', 'wb') as f: pickle.dump(info, f) # 写入test.txt文件中的内容 �}q (X typeqX MovieqX funcqc__main__ test qX nameqX The Count of Monte Cristoqu.
import pickle with open('test.txt', 'rb') as f: get_data = pickle.load(f) print(get_data) # 输出 {'name': 'The Count of Monte Cristo', 'func': <function test at 0x000001BA2AB4D510>, 'type': 'Movie'}
概要:
json 値は単純なデータ型をサポートします、pickle はすべてのデータ型をサポートします。
pickle は Python 自体のシリアル化と逆シリアル化のみをサポートしており、他の言語とのデータ対話には使用できませんが、json はサポートできます。
pickle はデータ オブジェクト全体をシリアル化するため、関数を逆シリアル化すると、関数本体のロジックが変更され、元の関数本体に従います。
以上がインメモリデータのシリアル化の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









MySQL5.7 と MySQL8.0 は 2 つの異なる MySQL データベース バージョンであり、それらの間には主な違いがいくつかあります: パフォーマンスの向上: MySQL8.0 では、MySQL5.7 と比較してパフォーマンスがいくつか向上しています。これには、より優れたクエリ オプティマイザー、より効率的なクエリ実行プランの生成、より優れたインデックス作成アルゴリズムと並列クエリなどが含まれます。これらの改善により、クエリのパフォーマンスとシステム全体のパフォーマンスが向上します。 JSON サポート: MySQL 8.0 では、JSON データのストレージ、クエリ、インデックス作成など、JSON データ型のネイティブ サポートが導入されています。これにより、MySQL での JSON データの処理と操作がより便利かつ効率的になります。トランザクション機能: MySQL8.0 では、アトミックなどのいくつかの新しいトランザクション機能が導入されています。

PHP 配列を JSON に変換するためのパフォーマンスの最適化方法には、JSON 拡張機能と json_encode() 関数の使用、文字エスケープを回避するためのバッファーの使用、およびサードパーティのエンコード結果の使用の検討が含まれます。 JSONエンコーディングライブラリ。

クイック スタート: JSON ファイルを読み取る Pandas の方法、特定のコード サンプルが必要です はじめに: データ分析とデータ サイエンスの分野では、Pandas は重要な Python ライブラリの 1 つです。豊富な機能と柔軟なデータ構造を備え、さまざまなデータを簡単に処理・分析できます。実際のアプリケーションでは、JSON ファイルを読み取る必要がある状況によく遭遇します。この記事では、Pandas を使用して JSON ファイルを読み取る方法を紹介し、具体的なコード例を添付します。 1.パンダのインストール

Jackson ライブラリのアノテーションは、JSON のシリアル化と逆シリアル化を制御します。 シリアル化: @JsonIgnore: プロパティを無視します @JsonProperty: 名前を指定します @JsonGetter: get メソッドを使用します @JsonSetter: set メソッドを使用します Deserialization: @JsonIgnoreProperties: プロパティ @ JsonProperty を無視します:名前を指定 @JsonCreator: コンストラクターを使用 @JsonDeserialize: カスタム ロジック

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

PHP の深い理解: JSONUnicode を中国語に変換する実装方法 開発中、JSON データを処理する必要がある状況によく遭遇しますが、特に変換する必要がある場合、JSON 内の Unicode エンコードによっていくつかのシナリオで問題が発生します。 Unicode エンコードを漢字に変換する場合。 PHP では、この変換処理を実現するためのメソッドがいくつかありますが、以下では一般的なメソッドを紹介し、具体的なコード例を示します。まず、JSON の Un について理解しましょう

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが

JSON (JavaScriptObjectNotation) は、Web アプリケーション間のデータ交換に一般的に使用される軽量のデータ交換形式です。 JSON データを処理するとき、Unicode でエンコードされた中国語の文字 (「u4e2du6587」など) が頻繁に発生するため、それらを読み取り可能な中国語の文字に変換する必要があります。 PHP では、いくつかの簡単なメソッドを通じてこの変換を実現できます。次に、JSONUnico を変換する方法を詳しく説明します。
