javascript
详解Python中的JSON以及在Python中使用JSON
首先什么是JSON?
? ? ? JSON(JavaScript Object Notation, JS 對象簡譜,即JavaScript對象表示法) 是一種用于表示結(jié)構(gòu)化數(shù)據(jù)的流行數(shù)據(jù)格式。? ? ? 在服務(wù)器和web應(yīng)用程序之間以JSON格式傳輸和接收數(shù)據(jù)是很常見的。
在Python中,JSON以字符串的形式存在(即JSON字符串),例如:
json_str = '{"name":"zhangsan","languages":["Python","Java"]}'? 在文件中存儲JSON對象也是很常見的
引入json模塊
? ? 要使用JSON(字符串或包含JSON對象的文件),你可以使用Python的json模塊。在使用該模塊之前,需要先引入它。
import jsonPython中解析JSON
? ?使用json模塊解析JSON字符串和包含JSON對象的文件是很容易的。
? 例1:? 在Python中將JSON解析成dict
使用json.loads()方法來解析JSON字符串。該方法返回一個字典。
import jsonperson = '{"name":"zhangsan","languages":["Python","Java"]}' person_dict = json.loads(person) print(person_dict) print(type(person_dict)) print(person_dict["languages"])打印結(jié)果, 可以看到,person 是一個JSON 字符串, person_dict 是一個字典。
{'name': 'zhangsan', 'languages': ['Python', 'Java']} <class 'dict'> ['Python', 'Java']例2 : 使用Python讀取JSON文件
? ??使用json.load()方法讀取一個包含JSON對象的文件。
? ?當(dāng)前文件下有一個person.json,它包含一個JSON對象。
# person.json {"name":"lisi","languages":["English","Fench"] }? 然后來解析這個person.json的json文件
import jsonwith open('person.json') as f:data = json.load(f)print(data) print(type(data))? 使用open()函數(shù)讀取json文件。然后,使用json.load()方法解析文件,該方法會返回一個字典
{'name': 'lisi', 'languages': ['English', 'Fench']} <class 'dict'>使用Python將字段轉(zhuǎn)換為JSON字符串
? 可以使用?json.dumps()方法將字典轉(zhuǎn)換成JSON字符串。
例3:將字典轉(zhuǎn)換為JSON
import jsonperson_dict = {"name":"xiaowang","age":21,"sex":None } person_json = json.dumps(person_dict) print(person_json) print(type(person_json))結(jié)果:
{"name": "xiaowang", "age": 21, "sex": null} <class 'str'>? Python對象及其與JSON的等效轉(zhuǎn)換
??
將JSON寫入一個文件
? ? ?在Python中將JSON寫入文件,我們可以使用json.dump()方法
例4:將JSON寫入一個文件
import jsonperson_dict = {"name": "Bob","languages": ["English", "Fench"],"married": True,"age": 36 } with open("person.txt","w") as json_file:json.dump(person_dict,json_file)然后就可以看見在當(dāng)前的文件下有一個person.txt的文件,打開文件,就會看見保存的json數(shù)據(jù)
為了分析和調(diào)試JSON數(shù)據(jù),我們可以通過向json.dumps()和json.dump()方法傳遞額外的參數(shù)indent和sort_keys來實現(xiàn)。
例5: 使用Python完美輸出JSON
import jsonperson_string = '{"name": "Bob", "languages": ["English", "Fench"], "married": true, "age": 36}'# 將json字符串轉(zhuǎn)化為字典 person_dict = json.loads(person_string)# 完美輸出JSON print(json.dumps(person_dict,indent=4,sort_keys=True))? 參數(shù)介紹: indent=4 ,使用了4個空格進(jìn)行縮進(jìn),并且,鍵值是按升序排序的
? ? ? ? ? ? ? ? ? ? ?indent的默認(rèn)值是None,? sort_keys的默認(rèn)值為False。
運(yùn)行之后的結(jié)果:
?
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的详解Python中的JSON以及在Python中使用JSON的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中各进制间的转换
- 下一篇: 轻松理解之SpringBoot实现原理