Python讀取、修改、保存json文件


  我們上一篇文章介紹了Python讀取、修改、保存xml文件,這篇文章將會介紹如何使用python來讀取,修改,保存json文件。

  本文主要用到的python模塊是json。

一、讀取json文件

  為了簡單起見,我自己造了一個json文件,主要結構如下。

   下面我們將使用json的load方法。

with open("test.json",'r',encoding='utf-8') as load_f: load_dict = json.load(load_f) print(type(load_dict)) print(load_dict)
<class 'dict'>
{'名字': 'CircleWang', 'age': 13, '朋友': ['張三', '李四', '王五']}

  可以看到我們已經把json文件讀取稱為python中可以操作的字典格式了。這里需要注意的是在使用with open打開文件的時候如果文件中是包含有中文,需要用encoding=‘utf-8’的方式來打開否則讀取出來的字典里中文部分會是亂碼。

二、修改和保存json文件

  保存python的字典或者列表為json文件(注意到只有字典和列表這兩種數據結構可以保存為json文件)。接下來我們將修改剛剛得到的load_dict,並再打開test.json文件保存修改。主要用到的模塊是json.dump()方法。

load_dict['名字']='其他' load_dict['age'] = 15 with open("test.json",'w',encoding='utf-8') as f: json.dump(load_dict, f,ensure_ascii=False)

   可以看到文件已經被更改了。這里一定要注意兩個地方就是,一是打開文件的方式是采用‘utf-8’,二是在保存文件的時候json.dump()需要添加參數ensure_ascii = False,這樣才能夠保存下來中文的json成果。

 三、還有兩個方法dumps和loads(不太常用)

  1、dumps:將python中的 字典 轉換為 字符串

test_dict = {'名字':'CircleWang','age':13,'朋友':["張三",'李四','王五']} json_str = json.dumps(test_dict,ensure_ascii=False) print(type(json_str)) json_str
<class 'str'>
'{"名字": "CircleWang", "age": 13, "朋友": ["張三", "李四", "王五"]}'

  這里參數也需要注意一下,如果包含有中文的字典,在轉換為字符串的時候,需要修改參數ensure_ascii=False。

  這里稍微提一句,采用這種方式轉化字典——>字符串和直接采用str(test_dict)是有區別的,主要區別在於雙引號和單引號的區別。大家可以看看差別。

json_str
'{"名字": "CircleWang", "age": 13, "朋友": ["張三", "李四", "王五"]}'
str(test_dict)
"{'名字': 'CircleWang', 'age': 13, '朋友': ['張三', '李四', '王五']}"

  2、loads: 將 字符串 轉換為 字典

new_dict = json.loads(json_str) print(type(new_dict)) new_dict
<class 'dict'>
{'名字': 'CircleWang', 'age': 13, '朋友': ['張三', '李四', '王五']}

  這里需要注意一下,采用loads將字符串轉換為字典,必須要保證字符串是以單引號來作為兩端開始與結束,換句話說前面提到的直接把str(test_dict)放進這個函數里是無法轉換為字典的。

 

參考網站:https://www.cnblogs.com/bigberg/p/6430095.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM