python:Json模塊dumps、loads、dump、load介紹


 

 

 轉載請注明出處:https://www.cnblogs.com/shapeL/p/9037670.html

由上篇文章(python3+requests:get/post請求)涉及到的json.dumps()擴展

1.json.dumps()用於將dict類型的數據轉成str

備注:文件路徑前面加上 r 是為了避免轉義

復制代碼

import json

dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
string = json.dumps(dict)
print(dict)
print(string)
print(type(dict))
print(type(string))

with open(r'C:\Users\zy\Documents\GitHub\python3\searchTest\json.json','w')as f:
f.write(string)

復制代碼
 
1 {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
2 {"a": "wo", "b": "zai", "c": "zhe", "d": "li"}
3 <class 'dict'>
4 <class 'str'>

如果沒有進行轉換,則會報錯:TypeError: write() argument must be str, not dict

 
1 import json
2 
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)
復制代碼

{'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
Traceback (most recent call last):
<class 'dict'>
File "C:/Users/zy/Documents/GitHub/python3/searchTest/json_test.py", line 11, in <module>
f.write(dict)
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))

舉例結果:

復制代碼

{
"code": "200",
"message": "",
"redirect": "",
"value": {
"name": "so",
"title": "360",
"value": "2"
}
}

復制代碼

 

2.json.loads():用於將str類型的數據轉成dict

復制代碼

dict = {'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
dumps = json.dumps(dict)
loads = json.loads(dumps)

print(dict)
print(dumps)
print(loads)

print(type(dict))
print(type(dumps))
print(type(loads))

復制代碼
復制代碼

{'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
{"a": "wo", "b": "zai", "c": "zhe", "d": "li"}
{'a': 'wo', 'b': 'zai', 'c': 'zhe', 'd': 'li'}
<class 'dict'>
<class 'str'>
<class 'dict'>

復制代碼

 

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'))

 

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 <class 'dict'>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM