pythonにおけるjsonのシーケンス化と逆シーケンス化
3284 ワード
シーケンス化は、pythonのオブジェクト符号化をjson形式に変換する文字列python--->json逆シーケンス化は、json形式の文字列をpythonデータオブジェクトjson文字列--->pythonデータオブジェクトに復号することと理解できる.
一、jsonのdumps()とloads()はデータのシーケンス化と逆シーケンス化を実現することができる
1、dumps関数のパラメータensure_を付けないascii=False、デフォルトはTrue
2、dict 1のシーケンス化処理
3、dumps関数のパラメータensure_を加えるascii = False
4、中国語があるとき、ensure_ascii=False中国語正常解析、デフォルトensure_ascii = True
json逆シーケンス化loads()、dump()、load()関数str--->dict
一、jsonのdumps()とloads()はデータのシーケンス化と逆シーケンス化を実現することができる
import json
print(json.__all__) # json
# ['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONDecodeError', 'JSONEncoder']
1、dumps関数のパラメータensure_を付けないascii=False、デフォルトはTrue
dict1 = {"name": "cc", "age": 10}
print(" :", type(dict1))
print(" :", dict1)
print("*"*30)
"""
:
['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONDecodeError', 'JSONEncoder']
:
: {'name': 'cc', 'age': 10}
"""
2、dict 1のシーケンス化処理
xu_dict1 = json.dumps(dict1)
print(" :", type(xu_dict1))
print(" :", xu_dict1)
print("*"*40)
"""
:
:
: {"name": "cc", "age": 10}
"""
3、dumps関数のパラメータensure_を加えるascii = False
#
dict2 = {"name":"cc", "address": " "}
xu_dict2 = json.dumps(dict2)
print(" ensure_ascii=False, :", type(xu_dict2))
print("ensure_ascii=False, :", xu_dict2)
print("*"*50)
"""
:
ensure_ascii=False, :
ensure_ascii=False, : {"name": "cc", "address": "\u90d1\u5dde"}
"""
4、中国語があるとき、ensure_ascii=False中国語正常解析、デフォルトensure_ascii = True
dict2 = {"name":"cc", "address": " "}
xu_dict3 = json.dumps(dict2, ensure_ascii=False)
print(" ensure_ascii=False :", type(xu_dict3))
print(" ensure_ascii=False :", xu_dict3)
"""
:
ensure_ascii=False :
ensure_ascii=False : {"name": "cc", "address": " "}
"""
json逆シーケンス化loads()、dump()、load()関数str--->dict
fan_json = json.loads(xu_dict3)
print(" :", type(fan_json))
print(" : ", fan_json)
"""
:
:
: {'name': 'cc', 'address': ' '}
"""
dict1 = {"name": "cc", "age": 10}
# json dump() , json
with open('data.json', 'w') as f:
json.dump(dict1, f)
# json load() , json , python
with open('data.json', 'r') as f:
data = json.load(f)
print(type(data)) # python
print(data) # {'name': 'cc', 'age': 10}
with open('data.json', 'r') as f:
print(type(f.read())) # json , load()
dict1 = json.load(open("json ")) # json