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