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!

推薦閱讀: