python json模块rodas方法_json模块使用总结——Python
# 原創文章,未經允許請勿轉載
通過Python的json模塊,可以將字符串形式的json數據轉化為字典,也可以將Python中的字典數據轉化為字符串形式的json數據。
之前使用這個模塊時,都是隨用隨查,淺嘗輒止,對模塊的功能了解不深。
隨著使用次數的增加,我對這個功能完善的模塊有了更多的了解,記錄如下。
1、json字符串轉為字典
json.load / json.loads
兩個方法功能類似,可選參數也相同,最大的區別在于,json.load方法接受的輸入,即第一個參數,是包含json數據的文件對象,如open方法的返回對象,
json.loads接受的輸入是json字符串,而非文件對象。從輸入類型的區別也可以看出兩者的使用場合。
可選參數包括是否需要轉換整型、浮點型等數值的參數,還有一些復雜的功能,暫時沒有用到,以后有機會再了解。
2、字典轉換為json
json.dump / json.dumps
對應于load和loads,dump的第一個參數是對象字典,第二個參數是文件對象,可以直接將轉換后的json數據寫入文件,dumps的第一個參數是對象字典,其余都是可選參數。dump和dumps的可選參數相同,這些參數都相當實用,現將用到的參數記錄如下:
ensure_ascii 默認為True,保證轉換后的json字符串中全部是ascii字符,非ascii字符都會被轉義。如果數據中存在中文或其他非ascii字符,最好將ensure_ascii設置為False,保證輸出結果正常。
indent 縮進,默認為None,沒有縮進,設置為正整數時,輸出的格式將按照indent指定的半角空格數縮進,相當實用。
separators 設置分隔符,默認的分隔符是(',', ': '),如果需要自定義json中的分隔符,例如調整冒號前后的空格數,可以按照(item_separator, key_separator)的形式設置。
sort_keys 默認為False,設為True時,輸出結果將按照字典中的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'] = "青團 》 熊貓 ?"
8 >>> a['ss'] =a.copy()9 >>> print(json.dumps(a)) #默認參數輸出,無縮進,中文字符都被轉義
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)) #四空格縮進,中文字符全部正常
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": "青團 》 熊貓 ?"
28 },29 "1": 2,30 "ad": "ertwer",31 "non_ascii": "青團 》 熊貓 ?"
32 }33 >>>
總結
以上是生活随笔為你收集整理的python json模块rodas方法_json模块使用总结——Python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中文分词算法python_Python
- 下一篇: python协程 无能为力_python