在Python中進行JSON轉化


序列化,指的是把內存中的變量(如類的實例)變成可存儲或可傳輸的過程。

JSON(JavaScript Object Notation, JavaScript對象表示)是網絡傳輸中經常使用的一種數據形式。

在Python中,經常將字典轉化成JSON來發送,使用的主要方法為dumps

import json

data = {'name':'nick',
            'age':12}
data_json = json.dumps(data)

注意以下幾點:

1.data_json為轉換后的JavaScript對象,在JavaScript對象里,key值默認為字符串格式

2.data_json中的key的順序與data中的順序不保證相同

3.data還可以是str,list,tuple,int等其他類型,這時也會對data進行相應的轉化

4.data_json的數據類型為str

將JSON格式的數據轉化為Python中的dict時,應使用loads

data = json.loads(data_json)

這時,data中所有的字符串默認均為unicode,因為JSON標准規定的編碼為UTF-8

注意:對於文件的JSON處理,應使用dump,load

要想JSON化類的實例,應在dumps中指定可選參數default,如:

def func(obj):

 

def foo(obj):
    return {'name':obj.name,
                'age':obj.age}        

 

此后使用 data_json = json.dumps(s, default = foo) 即可序列化類的實例s

更簡便的方法是:

json.dumps(s, default = lambda x: x.__dict__)

要得到JSON反序列化的類的實例,可使用loads的object_hook參數:

def bar(obj):
    return Person(obj['name'], d['age'])

c = json.loads(data_json, object_hook = bar)

此時得到的c為Person類的一個實例

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM