json是一種輕量級的數(shù)據(jù)格式,主要特點易于人閱讀和編寫 ,故現(xiàn)在成為前后端數(shù)據(jù)交互的一種通用格式 。 1.用途- 前后端數(shù)據(jù)交互和傳遞的通用格式
- 在自動化時要保存的數(shù)據(jù)格式 。
以下為json格式 : { 'name' : '李四' , 'age' : 22, 'sex' : '女'}
從格式上說,python中的字典和json基本一致, 但又屬于不同的數(shù)據(jù)類型 。想要使它們之間進行相互轉(zhuǎn)化就必須使用到一個中間庫 ,這個庫就是json . json在python3.x后是自帶的,可以直接導入使用 。 2.python與json數(shù)據(jù)類型的映射關系Python | JSON | dict | object | list, tuple | array | str, unicode | string | int, long, float | number | True | true | False | false | None | null |
3.json常用方法兩者之間的轉(zhuǎn)化是通過以下的四個方法 , 方法 | 描述 | json.dumps() | 將 Python 對象編碼成 JSON 字符串 | json.loads() | 將已編碼的 JSON 字符串解碼為 Python 對象 | json.dump() | 將Python內(nèi)置類型序列化為json對象后寫入文件 | json.load() | 讀取文件中json形式的字符串元素轉(zhuǎn)化為Python類型 |
將以上的方法進行總結(jié)后,有著這樣的規(guī)律 。 4.示例使用loads()和dumps()相互轉(zhuǎn)化 import jsondata = { 'name' : '張三' , 'age' : '21', 'sex' : '男' , 'address' : None, 'is_marry' : False}print('data的數(shù)據(jù)類型:{}'.format(type(data)))json_type_data = json.dumps(data)print(json_type_data)print('將python類型轉(zhuǎn)化為json對象:{}'.format(type(json_type_data)))print('='*30)python_type_data = json.loads(json_type_data)print(type(python_type_data))print('將json對象轉(zhuǎn)化為python對象:{}'.format(python_type_data))
使用load()和dump()相互轉(zhuǎn)化 print('='*30)with open('test_data.json','r+',encoding='utf-8') as f: z = json.load(f) print('從文件中讀取的json數(shù)據(jù)為:{}'.format(type(z))) print(z)
data = { 'name' : '張三' , 'age' : '21', 'sex' : '男' , 'address' : None, 'is_marry' : False}print('='*30)z = json.dumps(data,ensure_ascii=False)with open('test_data1.json','w+',encoding='utf-8') as f: f.write(z)
|