json釋義
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。
python內置類型 與 json類型對應關系
JSON | Python |
---|---|
object | dict |
array | list |
string | str |
number (int) | int |
number (real) | float |
true | True |
false | False |
null | None |
編碼(python內置類型->json類型)
json.
dump
(obj,fp) //接收一個對象和寫文件指針,將python內置類型數據轉化為json類型數據寫到文件對象中
json.
dumps
(obj) //將python內置類型轉化為json格式的str
官方文檔
json.
dump
(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None,sort_keys=False, **kw)
json.
dumps
(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
常用參數:
skipkey:keys不是內置數據類型時,該值設置為False時將拋出錯誤,設置為True時將跳過,默認False
indent 為縮進,默認為空
sort_keys:設置為True時將按key值排序,默認為False
xxx@xxx:$ touch a.json //創建json文件 xxx@xxx:$ python3 >>> b = {'zhang':35,'li':48} >>> fp = open('a.json','w') //創建文件對象 >>> import json >>> json.dump(b,fp) //dump方法 >>> fp.close() >>> test = json.dumps(a) //dumps方法 >>> test '{"li": 48, "zhang": 35}' xxx@xxx:$ cat a.json //查看文件 {"zhang: 48, "li": 35}
解碼(json類型->python內置數據類型)
json.
load(fp) //接收一個讀文件指針,將json文件內容解析為python內置類型數據
json.
loads(s) //接收一個json格式的str,解析為python內置類型數據
官方文檔
json.
load
(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
json.
loads
(s, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
常用參數:
object_hook:用於定制解碼器,默認為dict類型的
>>> fp = open('a.json','r') >>> b = json.load(fp) >>> b {'zhang': 48, 'li': 35} >>> c = json.loads(test) >>> c {'zhang': 48, 'li': 35}