本文實(shí)例為大家分享了python讀寫json數(shù)據(jù)的具體代碼,供大家參考,具體內(nèi)容如下
案例:
在web應(yīng)用中常常用到j(luò)son數(shù)據(jù)進(jìn)行傳輸數(shù)據(jù),本質(zhì)上是字典類型數(shù)據(jù)轉(zhuǎn)換成字符串,通過字符串進(jìn)行網(wǎng)頁(yè)傳輸,然后把接收到的字符串轉(zhuǎn)換成字典類似數(shù)據(jù)
需求:實(shí)現(xiàn)字典轉(zhuǎn)換成字符串,字符串轉(zhuǎn)換成字典數(shù)據(jù)類型,寫入文件
如何做?
1、明確dumps和dump的區(qū)別,dump的接口是文件,直接寫入文件,dumps把對(duì)應(yīng)的數(shù)據(jù)類型轉(zhuǎn)換成字符串,loads 和dumps相反,load直接從文件中讀取文件并把數(shù)據(jù)轉(zhuǎn)換成對(duì)應(yīng)的數(shù)據(jù)類型
2、先進(jìn)行數(shù)據(jù)轉(zhuǎn)換,字符串作為中間橋梁
#!/usr/bin/python3 import json def w_json(data): # 往文件中寫入json文件 with open('json_test.json', 'w') as wf: json.dump(data, wf) print('ok') def r_json(): # 讀取json文件 with open('json_test.json', 'r') as rf: data = json.load(rf) return data def chage_data(data): # 進(jìn)行json數(shù)據(jù)轉(zhuǎn)換 try: # separators 會(huì)把對(duì)應(yīng)符號(hào)前后的空格去掉,網(wǎng)絡(luò)傳輸中,空格沒有意義 # 還可以通過sort_keys進(jìn)行按字典可以排序,字典才有效,網(wǎng)絡(luò)傳輸一般都用json數(shù)據(jù)格式 return json.dumps(data, separators=[',', ':'], sort_keys=True) except Exception as e: print(e) return None if __name__ == '__main__': d = {'xiao_ming': 18, 'xiao_er': 50, 'xiao_san': 17, 'xu_xue': None, 'b_l':True} # d = [8, 2, 2, 7, 0, None, True] data = chage_data(d) if data: w_json(data) r_data = r_json() print('讀取的數(shù)據(jù):', r_data)