首先,了解下什么是JSON?
JSON:JavaScript Object Notation 【JavaScript 對象表示法】
JSON 是一種輕量級的數據交換格式,完全獨立于任何程序語言的文本格式。一般,后臺應用程序將響應數據封裝成JSON格式返回。
JSON的基本語法如下:JSON名稱/值對。JSON 數據的書寫格式是:名稱/值對。名稱/值對包括字段名稱(在雙引號中),然后著是一個冒號(:),最后是值。
JSON最常用的格式是對象的鍵值對:key只能是string, value可以是 object、array、string、number、true/false、null
1
2
3
4
5
6
7
|
{ "sites" : [ { "name" : "360" , "url" : "www.360.com" }, { "name" : "google" , "url" : "www.google.com" }, { "name" : "baidu" , "url" : "www.baidu.com" } ] } |
- 鍵通過雙引號包裹,后面跟冒號“:”,然后跟該鍵的值;
- 值可以是字符串、數字、數組等數據類型;
- 對象與對象之間用逗號隔開;
- “{}”用來保存對象;
- “[]”用來保存數組;
json跟python中的字典看起來很像,兩者之間的區別?
1)json的key只能是字符串,dict的key可以是任何可hash的對象,例如:字符串、數字、元組等;
2)字典是一種數據結構,json是一種數據格式;字典有很多內置函數,有多種調用方法,而json是數據打包的一種格式,并不像字典具備操作性;
3)json的字符串強制用雙引號,dict的字符串可以用單引號、雙引號;
一般而言,我們會把json轉化為python中的字典或者列表,再對其進行操作。
Pythone3的標準庫JSON模塊,可以很方便的幫我們進行json數據的轉換和處理,這里主要指序列化(json.dumps()、json.dump())和反序列化(json.loads()、json.load())。
序列化和反序列化:
將對象轉換為可通過網絡傳輸或可以存儲到本地磁盤的數據格式(如:XML、JSON或特定格式的字節串)的過程稱為序列化;反之,則稱為反序列化。
常用的JSON模塊方法:
- json.dumps():將Python中的對象轉換為JSON中的字符串對象
- json.dump():將python對象轉換成JSON字符串輸出到fp流中。
- json.loads():將JSON中的字符串對象轉換為Python中的對象
- json.load():讀取包含json對象的文件。
帶s的都是和字符串相關的,不帶s的都是和文件相關的。
實例:
把字典轉換成json串
1
2
3
4
5
6
7
8
|
import json dic = { 'name' : 'xiaoming' , 'age' : 29 } json_str = json.dumps(dic) #返回json字符串 print (json_str) print ( type (json_str)) 輸出: { "name" : "xiaoming" , "age" : 29 } < class 'str' > |
Python解碼JSON對象
1
2
3
4
5
6
7
8
9
10
|
import json json_str = '{"id":"09", "name": "Nitin", "department":"Finance"}' # Convert string to Python dict dict = json.loads(json_str) print ( dict ) #轉換成字典來后,要訪問其中的值,可以使用字典的key來訪問 print ( dict [ 'id' ]) 輸出: { 'id' : '09' , 'name' : 'Nitin' , 'department' : 'Finance' } 09 |
讀取json文件
1
2
3
4
5
6
7
8
|
import json with open ( 'test1.json' ) as f: a = json.load(f) print (a) print ( type (a)) 輸出: { 'sites' : [{ 'name' : '360' , 'url' : 'www.360.com' }, { 'name' : 'google' , 'url' : 'www.google.com' }, { 'name' : 'baidu' , 'url' : 'www.baidu.com' }]} < class 'dict' > |
寫入json文件
1
2
3
4
5
6
7
8
9
10
11
|
import json dic = { "name" : "xiaoming" , "age" : 20 , "phonenumber" : "15555555555" } with open ( "test2.json" , "w" ) as outfile: json.dump(dic, outfile) 文件test.json { "name" : "xiaoming" , "age" : 20 , "phonenumber" : "15555555555" } |
Python類型轉換JSON類型的對應關系
json類型轉換到Python的類型對照表
以上就是Python是怎樣處理json模塊的的詳細內容,更多關于Python處理json模塊的資料請關注服務器之家其它相關文章!
原文鏈接:https://www.cnblogs.com/zwhy8/p/13301578.html