python中json格式處理和字典的關(guān)系
前言:作為測試工程師都知道,json格式的文件使我們常用的一種數(shù)據(jù)存放形式,那么對于python文件的處理,python語言有著得天獨厚的條件,json的本質(zhì)是鍵值對形式存儲的,這就非常像python語言中的字典,所以有很多字典形式的函數(shù)與方法,是直接可以使用的。
今天我們先講一下編寫python腳本處理json的核心功能,有些散亂,后期在進(jìn)行整體腳本的編寫。
1、json文件讀取后的操作
json文件讀取后的操作和字典的操作一樣,可以將dict中相關(guān)的內(nèi)置方法都繼承過來,但是json文件中會有l(wèi)ist形式和dict形式的混合存在。
此時要注意區(qū)分。
json文件數(shù)據(jù)結(jié)構(gòu)走的是dict的結(jié)構(gòu),鍵值對
(1)修改值非常方便,
json["id"]=3001
(2)修改鍵就麻煩一點。
dict字典沒有直接修改鍵的概念與方法,
修改鍵:先把原有的鍵值對刪除,在添加新的鍵值對,注意獲取舊鍵值對的value,傳遞給新的鍵值對的value
獲取value:value=json['request']["session_id"] 刪除鍵值對:json['request'].pop("session_id") 新增鍵值對: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, '個文件成功', errorCount, '個文件有誤')
解說核心代碼:
核心代碼: for file in os.listdir(inputfilePath): #file就是當(dāng)前路徑中的所有文件名,使用的時候別忘了路徑+'/' + file try: ....inputfilePath + '/' + file except: print().....
3、json文件的讀取與寫入新文件
讀一遍寫一遍可以實現(xiàn)json的格式化,解決json在txt文件中是單行顯示的問題。
# 讀取文件 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('新文件生成完成')
核心點說明:
讀取、寫入encoding='utf8' 防止編碼問題 indent=4,好像是空4個格,美觀輸出
到此這篇關(guān)于python中json格式處理和字典的關(guān)系的文章就介紹到這了,更多相關(guān)python json字典關(guān)系內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3 實現(xiàn)爬取網(wǎng)站下所有URL方式
今天小編就為大家分享一篇Python3 實現(xiàn)爬取網(wǎng)站下所有URL方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01報錯No?module?named?numpy問題的解決辦法
之前安裝了Python,后來因為練習(xí)使用Python寫科學(xué)計算的東西,又安裝了Anaconda,但是安裝Anaconda之后又出現(xiàn)了一個問題,下面這篇文章主要給大家介紹了關(guān)于報錯No?module?named?numpy問題的解決辦法,需要的朋友可以參考下2022-08-08Python 字符串與二進(jìn)制串的相互轉(zhuǎn)換示例
今天小編就為大家分享一篇Python 字符串與二進(jìn)制串的相互轉(zhuǎn)換示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07