シリアライズとデシリアライズのPythonのタプル、辞書、リストの

  Pythonでは、シリアル化されたオブジェクトコードは、JSON形式に変換Python文字列を意味し、非直列化が反対である、文字列をデータオブジェクトとしてPython JSON形式をデコードされます。これは、このプロセスを処理するために、JSONライブラリーを専門としています。

  、JSONライブラリアプリケーション

  そのようなタプル、辞書、処理シーケンスリスト、型STR(文字列)、およびデシリアライゼーション処理パスの後、データ構造がまだと辞書(タプルがシリアライズとデシリアライズのリストであるとして組み込みデータ構造の後辞書のデータ型、もはやタプル)の後。JSONライブラリに、シリアライゼーションおよびデシリアライゼーションプロセスは二つの部分、処理部、特定のリストデータに分割され、他のファイルの内容の処理です。

次のように図1に示すように、変換コードの例です。

# - * -コーディング:UTF-8 - * - 
#python3.6
インポートJSONの #リスト のList1 = [1,2,3,4,5] 印刷(リスト1) プリント(「配列およびデシリアライゼーションのリスト処理:「) を印刷(」データ型を配列表の前に行われていない:「タイプ(List1を)) リストシリアライズ list_str = json.dumps(List1を) 印刷(」コンテンツリストをシリアライズします:{0}、タイプ:{} 1 "フォーマット(list_str、タイプ(list_str)))。 列list_strデシリアライズ str_list = json.loads(list_str) デシリアライゼーション後の文字列を印刷します("コンテンツ:{0}、タイプ:{1}。 "フォーマット(str_list、タイプ(str_list))) タプル tuple1 =( '名前'、 '富士'、 '年齢') プリント(tuple1) 印刷("タプルシリアライゼーションおよびデシリアライゼーションプロセス:「) プリント(」タプル以前にシリアル化されないデータ・タイプ:「タイプ(tuple1)) シリアライズ#タプルtuple1 tuple_str = JSONを。ダンプ(tuple1) プリント( "コンテンツtuple1タプルのシーケンスである:{0}、タイプ:{} 1"フォーマット(tuple_str、タイプ(tuple_str))) 列tuple_strデシリアライゼーションプロセス str_tuple = json.loads (tuple_str) プリント( "内容tuple_str列をデシリアライズである:{0}、タイプ:{} 1"フォーマット(str_tuple、タイプ(str_tuple))。) 辞書 dict1 = { '名前': '富士「」年齢『:』 22}である プリント(dict1) プリント( 『辞書シリアライゼーションおよびデシリアライゼーションプロセス』) プリント( 『辞書がシリアル化されたデータ型ではありません前:』、タイプ(dict1)) #辞書dict1シリアライズ dict_str = json.dumps(dict1) プリント( "辞書dict1配列の内容であるが:{0}、タイプ:{1}"形式( dict_str、タイプ(dict_str))) #列dict_strデシリアライズ処理 str_dict = json.loads(dict_str) プリント( "文字列dict_str配列の内容は{0}、タイプ:{1}"形式( str_dict、タイプ(str_dict )))

次のように印刷結果は以下のとおりです。

  アプリケーション・コードの2、例として次のように

  在实际服务端与客户端的数据交互中,客户端发送请求到服务端,服务端响应回复数据给客户端,客户端拿到响应数据后就把这些数据存储在文件中了 ,然后后续再继续对文件的数据进行处理,在处理的过程中需要进行序列化与反序列化处理,而序列化的过程实际上是把数据存储在文件中的过程,反序列化的过程是读取文件里边的内容的过程。记录一个例子,例子内容为把服务端返回的数据存储在文件中,然后再读取文件的内容

"""
 请求接口为  http://**9.*7.**.**3:8000/login ,
 把服务端返回的响应数据存储在文件中,然后对文件反序列化处理获取里面的具体的值
"""
import requests import json def login(): headers = { 'Content-Type': 'application/json'} data = {"userName":"11111111112","password":"123456"} response = requests.post( url = 'http://**9.*7.**.**3:8000/login', json = data, headers = headers ) versionInfo = response.text print("返回的参数未序列化之前的数据类型为:{0},内容为 {1}".format(type(versionInfo),versionInfo)) # 把服务端返回的响应数据序列化并存储在文件中 json.dump(response.json(),open('json.md','w')) login() # 对文件进行反序列化处理,取值message对应的value具体值 dict1 = json.load(open('json.md','r')) print("文件数据反序列化后的类型为:{0},内容为:{1}".format(type(dict1),dict1)) print("message对应的value的值为:{0}".format(dict1['message']))

  打印结果为:

 

おすすめ

転載: www.cnblogs.com/Zhan-W/p/11260220.html