import json基本使用

1 概述

JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫。
json是最常用的數(shù)據(jù)交換格式,在python編碼中需要將json字符串加載為python可以識(shí)別的python對象。
通常數(shù)據(jù)之間的傳輸、存儲(chǔ)是json字符串的形式;而數(shù)據(jù)的操作、分析則是對python對象進(jìn)行操作。
json字符串和python對象可以通過一下兩個(gè)函數(shù)互相轉(zhuǎn)換

函數(shù) 描述
json.dumps 將 Python 對象編碼成 JSON 字符串
json.loads 將已編碼的 JSON 字符串解碼為 Python 對象

json 類型轉(zhuǎn)換到 python 的類型對照表

JSON Python
object dict
array list
string unicode
number (int) int, long
number (real) float
true True
false False
null None

2 詳解

2.1 json.dumps

格式
編碼后的json格式字符串緊湊輸出,且無順序,其dumps方法提供一些可選的參數(shù),讓輸出的格式提高可讀性。

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

參數(shù)解釋
參照:https://blog.csdn.net/liangxy2014/article/details/78985057

skipkeys:在encoding過程中,dict對象的key只可以是string對象,如果是其他類型,那么在編碼過程中就會(huì)拋出ValueError的異常。skipkeys可以跳過那些非string對象當(dāng)作key的處理.
ensure_ascii:輸出真正的中文需要指定ensure_ascii=False
check_circular:如果check_circular為false,則跳過對容器類型的循環(huán)引用檢查,循環(huán)引用將導(dǎo)致溢出錯(cuò)誤
allow_nan:如果allow_nan為假,則ValueError將序列化超出范圍的浮點(diǎn)值(nan、inf、-inf),嚴(yán)格遵守JSON規(guī)范,而不是使用JavaScript等價(jià)值(nan、Infinity、-Infinity)。
indent:根據(jù)數(shù)據(jù)格式縮進(jìn)顯示,讀起來更加清晰, indent的值,代表縮進(jìn)空格式:
separators:作用是去掉‘,’ ‘:’后面的空格,在傳輸數(shù)據(jù)的過程中,越精簡越好,冗余的東西全部去掉。
encoding:編碼方式
defaul:default(obj)是一個(gè)函數(shù),它應(yīng)該返回一個(gè)可序列化的obj版本或引發(fā)類型錯(cuò)誤。默認(rèn)值只會(huì)引發(fā)類型錯(cuò)誤。
sort_keys:告訴編碼器按照字典key排序(a到z)輸出

使用方法

#將dict編碼為 JSON 格式數(shù)據(jù)
import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
data2 = json.dumps(data)
print(data2)

json.load

格式

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

參數(shù)解釋
參照:https://blog.csdn.net/daerzei/article/details/100598901

encoding:編碼方式
object_pairs_hook:它會(huì)將結(jié)果以key-value有序列表的形式返回
object_hook:它會(huì)將(loads的)返回結(jié)果字典替換為你所指定的類型,這個(gè)功能可以用來實(shí)現(xiàn)自定義解碼器,
parse_float:它如果被指定的話,在解碼json字符串的時(shí)候,符合float類型的字符串將被轉(zhuǎn)為你所指定的
parse_int:它如果被指定的話,在解碼json字符串的時(shí)候,符合int類型的字符串將被轉(zhuǎn)為你所指定的
parse_constant:它如果被指定的話,在解碼json字符串的時(shí)候,如果出現(xiàn)以以下字符串:-Infinity,Infinity,NaN那么指定的parse_constant方法將會(huì)被調(diào)用到

使用方法

#Python 解碼 JSON 對象:
import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = json.loads(jsonData)
print(text)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容