Python中json文件的讀取實(shí)現(xiàn)
1. json簡介
JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,常用于將結(jié)構(gòu)化數(shù)據(jù)進(jìn)行傳輸和存儲。它基于JavaScript語法,但可以被多種編程語言解析和生成。
json 基于文本,獨(dú)立于語言的輕量級的數(shù)據(jù)交換格式
- 基于文本,是一個文本文件,不能包含圖片,音視頻等
- 獨(dú)立于語言,不是某個語言特有的,每種編程語言都可以使用的
- 輕量級,相同的數(shù)據(jù),和其他格式相比,占用的大小比較小
- 數(shù)據(jù)交換格式,后端程序員 給前端的數(shù)據(jù) (json,xml,ProtoBuf等)
JSON具有廣泛的應(yīng)用,尤其在Web開發(fā)中常用于API的數(shù)據(jù)交互。在許多編程語言中,都有內(nèi)置的JSON解析器和生成器,可以方便地處理JSON數(shù)據(jù)。
2.json的使用規(guī)范
JSON使用鍵值對的方式表示數(shù)據(jù),其中鍵是字符串,值可以是字符串、數(shù)字、布爾值、對象、數(shù)組或null。
JSON的一些基本規(guī)則:
- 鍵和值之間使用冒號(:)分隔。
- 鍵值對之間使用逗號(,)分隔。
- 數(shù)據(jù)包裹在大括號({})中表示一個對象。
- 數(shù)組使用方括號([])表示,其中的元素可以是任意類型的數(shù)據(jù),用逗號分隔。
- json中的字符串必須使用雙引號
"" - json文件的后綴名是
.json - 一個json文件對應(yīng)一個對象或數(shù)組
3.json文件的書寫
一個簡單的JSON示例:
{
"name": "zhangsan",
"age": 20,
"city": "BeiJing",
"hobbies": ["reading", "running", "playing guitar"]
}
在上面的示例中,有一個包含個人信息的對象。它包含名稱、年齡、所在城市、愛好數(shù)組 注意: 不能在一個json文件中定義兩個json

如果想要在一個json文件中定義多個json,需要使用數(shù)組,如下:

4.json文件的讀取
使用python讀取json文件分為三步:
- 導(dǎo)包
- 讀打開文件
- 讀文件
在此之前,先使用普通文件的讀取方式進(jìn)行讀取:
with open("info.json",'r',encoding='UTF-8') as f:
buf = f.read()
print(type(buf))
print(buf)
此處返回的結(jié)果是 字符串,在字符串中獲取json中的鍵值對的信息是比較困難的.
不過在python中的json包中提供了一個 json.load() 方法
import json
with open("info.json",'r',encoding='UTF-8') as f:
result = json.load(f)
print(type(result))
print(result)
可以看到返回值類型變成了 dict(字典),python字典中的數(shù)據(jù)也是鍵值對,因此要獲取對應(yīng)的數(shù)據(jù)也就很方便了
- 使用方括號操作符
[key]:可以使用字典的key作為索引來獲取對應(yīng)的value。 - 使用get()方法:get()方法可以接收一個key參數(shù),并返回對應(yīng)的value。如果key不存在,則可以指定一個默認(rèn)值作為get()方法的第二個參數(shù),如果不指定,默認(rèn)值為None。

到此這篇關(guān)于Python中json文件的讀取實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python json讀取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用Python獲取攝像頭并實(shí)時控制人臉的實(shí)現(xiàn)示例
這篇文章主要介紹了用Python獲取攝像頭并實(shí)時控制人臉的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python基于QQ郵箱實(shí)現(xiàn)SSL發(fā)送
這篇文章主要介紹了Python基于QQ郵箱實(shí)現(xiàn)SSL發(fā)送,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04
淺談opencv自動光學(xué)檢測、目標(biāo)分割和檢測(連通區(qū)域和findContours)
這篇文章主要介紹了淺談opencv自動光學(xué)檢測、目標(biāo)分割和檢測(連通區(qū)域和findContours),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python Web框架Flask、Streamlit、FastAPI示例詳解
本文對比分析了Flask、Streamlit和FastAPI三大Python Web框架:Flask輕量靈活適合傳統(tǒng)應(yīng)用,Streamlit專注數(shù)據(jù)科學(xué),快速構(gòu)建交互式儀表板;FastAPI高性能且支持異,步,適合API開發(fā),選擇需結(jié)合項目需求、團(tuán)隊經(jīng)驗(yàn)及功能特性,感興趣的朋友一起看看吧2025-07-07
Python遠(yuǎn)程視頻監(jiān)控程序的實(shí)例代碼
這篇文章主要介紹了Python遠(yuǎn)程視頻監(jiān)控程序的實(shí)例代碼,需要的朋友可以參考下2019-05-05
關(guān)于Tensorflow使用CPU報錯的解決方式
今天小編就為大家分享一篇關(guān)于Tensorflow使用CPU報錯的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

