python對json的操作總結(一)
阿新 • • 發佈:2018-05-28
IV 序列化 web print with open 運行 IT 交換 編程語言
反過來,把變量內容從序列化的對象重新讀到內存裏稱之為反序列化。
json
概念:json是一種輕量級數據交換格式。
如果我們要在不同的編程語言之間傳遞對象,就必須把對象序列化為標準格式,比如XML,但更好的方法是序列化為JSON,因為JSON表示出來就是一個字符串,可以被所有語言讀取,也可以方便地存儲到磁盤或者通過網絡傳輸。JSON不僅是標準格式,並且比XML更快,而且可以直接在Web頁面中讀取,非常方便。
格式:一個無序的‘名稱’/‘值’集合。{名稱1/值,名稱2/值……}。
說明:你可能會想起這種格式在哪見過,沒錯。在python中字典也有著類似的可以key:value結構。但是不能混為一談。
- JSON 的 key 只能是字符串,Python 的 dict 可以是任何可 hash 對象
- JSON 的 key 可以是有序的
- JSON 的 key 可以重復
- JSON 的值只能是字符串、浮點數、布爾值或者 null,或者它們所構成的數組或者對象。
編碼--序列化:
- dumps:把數據類型轉換成字符串
- dump:把數據類型轉換成字符串並存儲在文件中
解碼--反序列化:
- loads:把字符串轉換成數據類型
- load:把文件打開從數據類型轉換成字符串
說明:在程序運行的過程中,所有的變量都是在內存中。一旦程序結束,變量也會消失。
所以,我們把變量從內存中變成可存儲或傳輸的過程稱為序列化。
1、dumps:將字典轉為字符串
In [100]: d=dict(name=‘xjm‘) In [101]: a=json.dumps(d) In [102]: a Out[102]: ‘{"name": "xjm"}‘ In [103]: type(a) Out[103]: str
2、dump:寫入json文件中
In [105]: with open(‘Desktop/j.txt‘,‘w‘) as f: ...: a=json.dump(d,f) ...: print(‘文件寫入完成……‘) ...: 文件寫入完成……
3、loads:讀取json文件
In [114]: d=json.loads(a) In [115]: d Out[115]: {‘name‘: ‘xjm‘}
4、load:在文件中讀取json文件
In [120]: with open(‘j.txt‘,‘rb‘) as f: ...: a=json.load(f) ...: In [121]: a Out[121]: {‘name‘: ‘xjm‘}
python對json的操作總結(一)