python json模块rodas方法_json模块使用总结——Python
# 原創(chuàng)文章,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載
通過Python的json模塊,可以將字符串形式的json數(shù)據(jù)轉(zhuǎn)化為字典,也可以將Python中的字典數(shù)據(jù)轉(zhuǎn)化為字符串形式的json數(shù)據(jù)。
之前使用這個(gè)模塊時(shí),都是隨用隨查,淺嘗輒止,對(duì)模塊的功能了解不深。
隨著使用次數(shù)的增加,我對(duì)這個(gè)功能完善的模塊有了更多的了解,記錄如下。
1、json字符串轉(zhuǎn)為字典
json.load / json.loads
兩個(gè)方法功能類似,可選參數(shù)也相同,最大的區(qū)別在于,json.load方法接受的輸入,即第一個(gè)參數(shù),是包含json數(shù)據(jù)的文件對(duì)象,如open方法的返回對(duì)象,
json.loads接受的輸入是json字符串,而非文件對(duì)象。從輸入類型的區(qū)別也可以看出兩者的使用場合。
可選參數(shù)包括是否需要轉(zhuǎn)換整型、浮點(diǎn)型等數(shù)值的參數(shù),還有一些復(fù)雜的功能,暫時(shí)沒有用到,以后有機(jī)會(huì)再了解。
2、字典轉(zhuǎn)換為json
json.dump / json.dumps
對(duì)應(yīng)于load和loads,dump的第一個(gè)參數(shù)是對(duì)象字典,第二個(gè)參數(shù)是文件對(duì)象,可以直接將轉(zhuǎn)換后的json數(shù)據(jù)寫入文件,dumps的第一個(gè)參數(shù)是對(duì)象字典,其余都是可選參數(shù)。dump和dumps的可選參數(shù)相同,這些參數(shù)都相當(dāng)實(shí)用,現(xiàn)將用到的參數(shù)記錄如下:
ensure_ascii 默認(rèn)為True,保證轉(zhuǎn)換后的json字符串中全部是ascii字符,非ascii字符都會(huì)被轉(zhuǎn)義。如果數(shù)據(jù)中存在中文或其他非ascii字符,最好將ensure_ascii設(shè)置為False,保證輸出結(jié)果正常。
indent 縮進(jìn),默認(rèn)為None,沒有縮進(jìn),設(shè)置為正整數(shù)時(shí),輸出的格式將按照indent指定的半角空格數(shù)縮進(jìn),相當(dāng)實(shí)用。
separators 設(shè)置分隔符,默認(rèn)的分隔符是(',', ': '),如果需要自定義json中的分隔符,例如調(diào)整冒號(hào)前后的空格數(shù),可以按照(item_separator, key_separator)的形式設(shè)置。
sort_keys 默認(rèn)為False,設(shè)為True時(shí),輸出結(jié)果將按照字典中的key排序。
1 >>> importjson2 >>> a ={}3 >>> a['1'] = 2
4 >>> a['ad'] = 'ertwer'
5 >>> a['02'] = 'oierte'
6 >>> a[2] = [1, 'a']7 >>> a['non_ascii'] = "青團(tuán) 》 熊貓 ?"
8 >>> a['ss'] =a.copy()9 >>> print(json.dumps(a)) #默認(rèn)參數(shù)輸出,無縮進(jìn),中文字符都被轉(zhuǎn)義
10 {"2": [1, "a"], "02": "oierte", "ss": {"ad": "ertwer", "2": [1, "a"], "02": "oierte", "1": 2, "non_ascii": "\u9752\u56e2 \u300b \u718a\u732b \uff1f"}, "1": 2, "ad": "ertwer", "non_ascii": "\u9752\u56e2 \u300b \u718a\u732b \uff1f"}11 >>>
12 >>> print(json.dumps(a, ensure_ascii=False, indent=4)) #四空格縮進(jìn),中文字符全部正常
13 {14 "2": [15 1,16 "a"
17 ],18 "02": "oierte",19 "ss": {20 "ad": "ertwer",21 "2": [22 1,23 "a"
24 ],25 "02": "oierte",26 "1": 2,27 "non_ascii": "青團(tuán) 》 熊貓 ?"
28 },29 "1": 2,30 "ad": "ertwer",31 "non_ascii": "青團(tuán) 》 熊貓 ?"
32 }33 >>>
總結(jié)
以上是生活随笔為你收集整理的python json模块rodas方法_json模块使用总结——Python的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中文分词算法python_Python
- 下一篇: 蝴蝶优化算法_算法|FFT基础及各种常数