python中json格式處理和字典的關系
前言:作為測試工程師都知道,json格式的文件使我們常用的一種數據存放形式,那麼對於python文件的處理,python語言有著得天獨厚的條件,json的本質是鍵值對形式存儲的,這就非常像python語言中的字典,所以有很多字典形式的函數與方法,是直接可以使用的。
今天我們先講一下編寫python腳本處理json的核心功能,有些散亂,後期在進行整體腳本的編寫。
1、json文件讀取後的操作
json文件讀取後的操作和字典的操作一樣,可以將dict中相關的內置方法都繼承過來,但是json文件中會有list形式和dict形式的混合存在。
此時要註意區分。
json文件數據結構走的是dict的結構,鍵值對
(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就是當前路徑中的所有文件名,使用的時候別忘瞭路徑+'/' + file try: ....inputfilePath + '/' + file except: print().....
3、json文件的讀取與寫入新文件
讀一遍寫一遍可以實現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個格,美觀輸出
到此這篇關於python中json格式處理和字典的關系的文章就介紹到這瞭,更多相關python json字典關系內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python序列化模塊之pickle與json詳解
- Python常用標準庫詳解(pickle序列化和JSON序列化)
- Python中json.load()和json.loads()有哪些區別
- Python常用配置文件ini、json、yaml讀寫總結
- Python實現將字典內容寫入json文件