python中json格式處理和字典的關(guān)系
前言:作為測(cè)試工程師都知道,json格式的文件使我們常用的一種數(shù)據(jù)存放形式,那么對(duì)于python文件的處理,python語(yǔ)言有著得天獨(dú)厚的條件,json的本質(zhì)是鍵值對(duì)形式存儲(chǔ)的,這就非常像python語(yǔ)言中的字典,所以有很多字典形式的函數(shù)與方法,是直接可以使用的。
今天我們先講一下編寫python腳本處理json的核心功能,有些散亂,后期在進(jìn)行整體腳本的編寫。
1、json文件讀取后的操作
json文件讀取后的操作和字典的操作一樣,可以將dict中相關(guān)的內(nèi)置方法都繼承過(guò)來(lái),但是json文件中會(huì)有l(wèi)ist形式和dict形式的混合存在。
此時(shí)要注意區(qū)分。
json文件數(shù)據(jù)結(jié)構(gòu)走的是dict的結(jié)構(gòu),鍵值對(duì)
(1)修改值非常方便,
json["id"]=3001
(2)修改鍵就麻煩一點(diǎn)。
dict字典沒(méi)有直接修改鍵的概念與方法,
修改鍵:先把原有的鍵值對(duì)刪除,在添加新的鍵值對(duì),注意獲取舊鍵值對(duì)的value,傳遞給新的鍵值對(duì)的value
獲取value:value=json['request']["session_id"]
刪除鍵值對(duì):json['request'].pop("session_id")
新增鍵值對(duì):json['request'].setdefault("operation_id",value)2、python遞歸路徑文件夾中的所有文件
def jsonfilePath_read(inputfilePath, outfilepath):
rightCount = 0
errorCount = 0
for file in os.listdir(inputfilePath):
try:
print(file)
read_jsonfile_change2(str(inputfilePath + '/' + file), outfilepath + '/' + file)
print(file + '修改成功')
rightCount += 1
except:
print(file + '文件有誤修改失敗')
errorCount += 1
print('文件修改完成 ', rightCount, '個(gè)文件成功', errorCount, '個(gè)文件有誤')解說(shuō)核心代碼:
核心代碼:
for file in os.listdir(inputfilePath):
#file就是當(dāng)前路徑中的所有文件名,使用的時(shí)候別忘了路徑+'/' + file
try:
....inputfilePath + '/' + file
except:
print().....3、json文件的讀取與寫入新文件
讀一遍寫一遍可以實(shí)現(xiàn)json的格式化,解決json在txt文件中是單行顯示的問(wèn)題。
# 讀取文件
with open('file/test.json', 'r', encoding='utf8') as f:
json_data = json.load(f)
jsondict = json_data
# 寫入新文件
with open('outfile/test.json', 'w', encoding='utf8') as r:
json.dump(jsondict, r, ensure_ascii=False, indent=4)
print('新文件生成完成')核心點(diǎn)說(shuō)明:
讀取、寫入encoding='utf8' 防止編碼問(wèn)題 indent=4,好像是空4個(gè)格,美觀輸出
到此這篇關(guān)于python中json格式處理和字典的關(guān)系的文章就介紹到這了,更多相關(guān)python json字典關(guān)系內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python根據(jù)區(qū)號(hào)生成手機(jī)號(hào)碼的方法
這篇文章主要介紹了Python根據(jù)區(qū)號(hào)生成手機(jī)號(hào)碼的方法,涉及Python隨機(jī)數(shù)與字符串的相關(guān)操作技巧,需要的朋友可以參考下2015-07-07
詳解python數(shù)組中的符號(hào)...與:符號(hào)的不同之處
這篇文章主要介紹了詳解python數(shù)組中的符號(hào)...與:符號(hào)的不同之處,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
TorchVision Transforms API目標(biāo)檢測(cè)實(shí)例語(yǔ)義分割視頻類
這篇文章主要為大家介紹了TorchVision Transforms API大升級(jí),支持目標(biāo)檢測(cè)、實(shí)例/語(yǔ)義分割及視頻類任務(wù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Python面向?qū)ο笾蓡T相關(guān)知識(shí)總結(jié)
通過(guò)面向?qū)ο筮M(jìn)行編程時(shí),會(huì)遇到很多種情況,也會(huì)使用不同的成員來(lái)實(shí)現(xiàn),接下來(lái)我們來(lái)逐一介紹成員特性和應(yīng)用場(chǎng)景,需要的朋友可以參考下2021-06-06
python 中的collections.OrderedDict() 用法
這篇文章主要介紹了python 中的collections.OrderedDict() 用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05

