Json簡介
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成。
它的格式一般是這樣的:
對象是一個無序的“‘名稱/值'對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”后跟一個“:”(冒號);“‘名稱/值' 對”之間使用“,”(逗號)分隔。
例如下面這樣:
{"b": "Hello", "c": null, "a": true}
它的值可以是雙引號括起來的字符串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。
值(value)可以是雙引號括起來的字符串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。
使用Python編碼和解析Json
Python內置了json包來幫助我們完成對json的操作。
將Python的字典結構導出到json使用json.dumps()
,將json讀成Python的字典結構,使用json.loads()
。
如果不是針對string操作而是對文件操作,分別使用json.load()
函數和json.dump()
函數。
import json data = { 'name' : 'ACME', 'shares' : 100, 'price' : 542.23} json_str = json.dumps(data)data = json.loads(json_str) # Writing JSON data to filewith open('data.json', 'w') as f: json.dump(data, f) # Reading data backwith open('data.json', 'r') as f: data = json.load(f)
默認的類型對應如下:
JSON | Python |
---|---|
object | dict |
array | list |
string | unicode |
number (int) | int, long |
number (real) | float |
true | True |
false | False |
null | None |
其他數據類型與Json之間的編碼和解碼
一般來說,Python對json的解析是list或dict之間的操作,如果需要其他類型與json之間轉換,就需要object_hook參數。先定義一個類,將類的字典初始化成json的key-value鍵值對。這樣,json的參數就變成了類的屬性。
新聞熱點
疑難解答