「json&pickle」dumps,loads,dump,load的區別

  • json:優點:所有語言通用,缺點:只能序列化部分數據類型;不能連續load多次
  • pickle;可以序列化多有數據,但是序列化之後只有python識別,能連續load多次
  • 1 .json.dumps()

    json.dumps()是將字典類型轉化成字符串類型。

    <code>import jsonname_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}jsObj = json.dumps(name_emb)print(name_emb)print(jsObj)/<code>

    2 .json.dump()

    json.dump()用於將dict類型的數據轉成str,並寫入到json文件中

    <code>import jsonname_emb = {'a':'1111','b':'2222','c':'3333','d':'4444'}emb_filename = ('/home/cqh/faceData/emb_json.json')# solution 1jsObj = json.dumps(name_emb)with open(emb_filename, "w") as f:f.write(jsObj)f.close()# solution 2json.dump(name_emb, open(emb_filename, "w"))/<code>

    3 .json.loads()

    json.loads()將字符串類型轉化成字典類型

    <code>import jsonname_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)/<code>

    4 json.load()

    json.load()用於從json文件中讀取數據。

    <code># json_load.pystrList = json.load(with open("listStr.json",mode='r'))print strListprint strDict# {u'city': u'\\\\u5317\\\\u4eac', u'name': u'\\\\u5927\\\\u5218'}/<code>
    • pickle常用操作參考json

    格式要求:

    <code>1.只能包含int/ str/ list/ dict/ bool/float 不存在元組/集合最外層必須是一個列表或字典在json中如果有字符串,必須是雙引號"json中的字符串"真假小寫true/false/<code>


    • 字典或者列表中存在中文,序列化的時候或轉為UNcode格式,如果想保存中文就需要進行以下操作
    <code>v1=[1,2,3,4,'2','大牛']val = json.dumps(v1,ensure_ascii=False)print(val) #[1, 2, 3, 4, "2", "大牛"]/<code>


    「json&pickle」dumps,loads,dump,load的區別


    總結: dump與json轉化時可以結合文件操作,dumps與jsons不能.

    最後呢,歡迎指正.


    分享到:


    相關文章: