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

posted @ 2021-09-16 15:58  Circle_Wang  阅读(25767)  评论(0编辑  收藏  举报