詳しくは【json&pickle】dumps,loads,dump,loadの違い
2040 ワード
1 json.dumps()
json.dumps()は、辞書タイプを文字列タイプに変換します.
2 json.dump()
json.dump()dictタイプのデータをstrに変換してjsonファイルに書き込む
3 json.loads()
json.loads()文字列タイプを辞書タイプに変換
4 json.load()
json.load()はjsonファイルからデータを読み出すために使用されます. pickle共通操作参照json フォーマット要件: はint/str/list/dict/bool/floatのみを含むタプル/セット は存在しない.最外層は、リストまたは辞書 である必要があります. jsonに文字列がある場合は、二重引用符「jsonの文字列」 でなければなりません.真偽小文字true/false 辞書またはリストに中国語が存在し、シーケンス化するときはUNcode形式に移行するが、中国語を保存するには以下の操作が必要である json:利点:すべての言語が通用し、欠点:一部のデータ型をシーケンス化するしかない.連続loadできない pickle;複数のデータをシーケンス化できますが、シーケンス化後はpythonのみ認識され、連続してloadで を複数回連続することができます.
まとめ:dumpとjsonの変換時にファイル操作を結合することができ、dumpsとjsonsはできない.
json.dumps()は、辞書タイプを文字列タイプに変換します.
import json
name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
jsObj = json.dumps(name_emb)
print(name_emb)
print(jsObj)
2 json.dump()
json.dump()dictタイプのデータをstrに変換してjsonファイルに書き込む
import json
name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
emb_filename = ('/home/cqh/faceData/emb_json.json')
# solution 1
jsObj = json.dumps(name_emb)
with open(emb_filename, "w") as f:
f.write(jsObj)
f.close()
# solution 2
json.dump(name_emb, open(emb_filename, "w"))
3 json.loads()
json.loads()文字列タイプを辞書タイプに変換
import json
name_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}
jsDumps = json.dumps(name_emb)
jsLoads = json.loads(jsDumps)
print(name_emb)
print(jsDumps)
print(jsLoads)
4 json.load()
json.load()はjsonファイルからデータを読み出すために使用されます.
# json_load.py
strList = json.load(with open("listStr.json",mode='r'))
print strList
print strDict
# {u'city': u'\u5317\u4eac', u'name': u'\u5927\u5218'}
v1=[1,2,3,4,'2',' ']
val = json.dumps(v1,ensure_ascii=False)
print(val) #[1, 2, 3, 4, "2", " "]
まとめ:dumpとjsonの変換時にファイル操作を結合することができ、dumpsとjsonsはできない.