由上篇文章(python3+requests:get/post請求)涉及到的json.dumps()擴充
1.json.dumps()用于将dict類型的資料轉成str
備注:檔案路徑前面加上 r 是為了避免轉義
1 importjson2
3 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}4 string =json.dumps(dict)5 print(dict)6 print(string)7 print(type(dict))8 print(type(string))9
10 with open(r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json','w')as f:11 f.write(string)
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}2 {"a": "wo", "b": "zai", "c": "zhe", "d": "li"}3
4
如果沒有進行轉換,則會報錯:TypeError: write() argument must be str, not dict
1 importjson2
3 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}4 with open(r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json','w')as f:5 f.write(dict)
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}2 Traceback (most recent call last):3
4 File "C:/Users/zy/Documents/GitHub/python3/searchTest/json_test.py", line 11, in
5 f.write(dict)6 TypeError: write() argument must be str, not dict
json.dumps()參數解釋:常用參數解釋
indent:應該是一個非負的整型,如果是0,或者為空,則一行顯示資料;否則會換行且按照indent的數量顯示前面的空白
sort_keys:将資料根據keys的值進行排序
1 response = requests.post(url=url,headers=headers).json()2 print(json.dumps(response,sort_keys=True,indent=4))
舉例結果:
1 {2 "code": "200",3 "message": "",4 "redirect": "",5 "value": {6 "name": "so",7 "title": "360",8 "value": "2"
9 }10 }
2.json.loads():用于将str類型的資料轉成dict
1 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}2 dumps =json.dumps(dict)3 loads =json.loads(dumps)4
5 print(dict)6 print(dumps)7 print(loads)8
9 print(type(dict))10 print(type(dumps))11 print(type(loads))
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}2 {"a": "wo", "b": "zai", "c": "zhe", "d": "li"}3 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}4
5
6
3.json.dump()用于将dict類型的資料轉成str,并寫入到json檔案中
1 dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}2 json.dump(dict,open(r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json','w'))
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLwYDMyMzM5ATNx0SOzUDN0cDM5EDNxUDM4EDMy0CMwATO0ITMvwVNwgTMwIzLcBDMwkDNyEzLcd2bsJ2Lc12bj5ycn9Gbi52YugTMwIzcldWYtl2Lc9CX6MHc0RHaiojIsJye.png)
4.json.load()用于從json檔案中讀取資料
1 filename = (r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json')2 jsObj =json.load(open(filename))3 print(jsObj)4 print(type(jsObj))
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}2