python向json中追加數(shù)據(jù)的兩種方法總結(jié)
前言
json以其輕量級(jí)的數(shù)據(jù)交換格式,且易于閱讀和編寫而使用率很廣泛,而使用json的過程中時(shí)而需要增加字段,本人驗(yàn)證兩種方式之后將其集成梳理。
具體操作詳情如下:
1. list dump (不推薦)
采用list方式,向json中添加字段。此法存在一定的問題,不推薦使用。
方法如下:
(1)先創(chuàng)建一個(gè)列表;
json_content = []
(2)將當(dāng)前json文件中已有的內(nèi)容讀入列表中;
with open(fjson, 'r') as f:
content = json.load(f)
# 讀取所有字段
version = content["version"]
flags = content["flags"]
shapes = content["shapes"]
imageData = content["imageData"]
imagePath = content["imagePath"]
imageHeight = content["imageHeight"]
imageWidth = content["imageWidth"]
item_dict = {
"version": version,
"flags": flags,
"shapes": shapes,
"imageData": imageData,
"imagePath": imagePath,
"imageHeight": imageHeight,
"imageWidth": imageWidth
}
json_content.append(item_dict) # 將讀取的內(nèi)容append到list中
(3)將新增的內(nèi)容以字典形式添加至列表中;
axis = {"axis":[22,10,33]}
json_content.append(axis)
(4)使用json.dump()將該列表寫回原文件;
with open(fjson, 'w') as f_new:
json.dump(content, f_new)
問題:此方法采用dump list的方式追加內(nèi)容,但是問題在于此法將json的dict對(duì)象轉(zhuǎn)換成了list對(duì)象,會(huì)導(dǎo)致修改json格式,故而不推薦。
2. json update (推薦使用)
使用dict自帶函數(shù)update,將字典dict對(duì)應(yīng)的key/value更新到另一個(gè)dict中。
此法簡(jiǎn)單快捷,直接更新dict,而不需要將原始文件的key/value全部讀取出來。
(1)讀取原始json文件(與方式1相同)
with open(fjson, 'r') as f:
content = json.load(f)
(2)更新字典dict
axis = {"axis":[22, 10, 11]}
content.update(axis)
(3)寫入
with open(fjson, 'w') as f_new:
json.dump(content, f_new)
很簡(jiǎn)單,三步搞定,簡(jiǎn)單方便快捷。
總結(jié)
到此這篇關(guān)于python向json中追加數(shù)據(jù)的兩種方法的文章就介紹到這了,更多相關(guān)python向json追加數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)戰(zhàn)教程之OCR文字識(shí)別方法匯總
ocr是一種光學(xué)字符識(shí)別技術(shù),簡(jiǎn)單來說它能夠識(shí)別出圖像中的文字并且將其給取出來,下面這篇文章主要給大家介紹了關(guān)于python實(shí)戰(zhàn)教程之OCR文字識(shí)別方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
Python2和Python3中@abstractmethod使用方法
這篇文章主要介紹了Python2和Python3中@abstractmethod使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
python?matplotlib庫(kù)繪圖實(shí)戰(zhàn)之繪制散點(diǎn)圖
Python有著強(qiáng)大的繪圖庫(kù) matplotlib,該庫(kù)集成了大量的繪制函數(shù),可以滿足我們平時(shí)絕大多數(shù)的繪圖要求,這篇文章主要給大家介紹了關(guān)于python?matplotlib庫(kù)繪圖實(shí)戰(zhàn)之繪制散點(diǎn)圖的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python使用SQLite和Excel操作進(jìn)行數(shù)據(jù)分析
這篇文章主要介紹了Python使用SQLite和Excel操作進(jìn)行數(shù)據(jù)分析,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
pandas把dataframe轉(zhuǎn)成Series,改變列中值的類型方法
下面小編就為大家分享一篇pandas把dataframe轉(zhuǎn)成Series,改變列中值的類型方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python調(diào)用工具包實(shí)現(xiàn)發(fā)送郵件服務(wù)
這篇文章主要為大家詳細(xì)介紹了Python圖畫調(diào)用工具包實(shí)現(xiàn)發(fā)送郵件服務(wù)的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05

