JSON文件的读写操作--用到json包

在测试过程中,我们经常会碰到json形式的报文,那我们就要学会如何快速读取json文件了。

读取json文件

读取硬盘中的JSON文件内容,具体方法是:json.load()

前提:准备一个json文件数据

示例代码如下:

import json

#json文件数据的路径

filename = 'C:/Users/FCL/Desktop/数据分析-python/json01.json'

with open(filename, 'r',encoding='utf-8') as f_obj:

    json_data = json.load(f_obj)

 

# 返回值是dict类型

print(type(json_data))

print(json_data)

# 打印key值

# print(json_data.keys())

# 读取key对应的value值

print(json_data['name'])

print(json_data['address']['city'])

 

# 读取data key所对应的值

for item in json_data['domain_list']:

print(item)

执行结果

JSON文件的读写操作--用到json包_第1张图片

读取json字符串

具体方法为:json.loads(字符串名)

注:调用loads方法可以将字符串形式的JSON串转成结构化变量

示例代码如下:

import json

 

# 从字符串变量读取

json_str = '{"firstName":"John", "lastName": "Simit", "phoneNumber": [{"type": "home", "number": "1234567"}, {"type": "work", "number": "7654321"}]}'

json_data = json.loads(json_str)

print(type(json_data))

 

json_num = "[1,4,6,8,9]"

json_lst=json.loads(json_num)

print(type(json_lst))

print(json_lst[3])

JSON文件的读写操作--用到json包_第2张图片

注意事项:

当JSON字符串数据中存在字符串时,即需要引号嵌套时,键或者普通值的字符串必须使用双引号包含,数值类型则不用引号,而{}外层必须是单引号,不然会提示各种错误。

如:import json

json_dict = "{'a':'b','c':'d'}"

json.loads(json_dict)

正确如下:

json_dict = '{"a":"b","c":"d"}'

json.loads(json_dict)

 

Json数据的保存

当我们的数据以字典或者列表变量的形式表示,需要被写入到文件时,可以使用json.dump()方法生成JSON文件;

如果要将变量中的数据写成JSON格式的字符串,可以使用json.dumps()

 

生成一个json文件,

首先新建一个json文件的地址

示例代码如下:

import json

book_dict_list = [{'书名1':'11', '作者1':'伍1'}, {'书名2':'22', '作者2':'刘2'}, {'书名3':'33', '作者4':'王4'}]

filename = 'E:/pycharm-workpace/data_analyze/num03/json_output.json'

#json文件写入列表内容

with open(filename, mode='w', encoding='utf-8') as f_obj:

    json_new=json.dump(book_dict_list, f_obj, ensure_ascii=False)

#读json文件

with open(filename, 'r',encoding='utf-8') as f_obj:

    json_data = json.load(f_obj)

print(json_data)

 

生成json字符串

示例代码如下:

import json

book_dict_list = [{'书名1':'11', '作者1':'伍1'}, {'书名2':'22', '作者2':'刘2'}, {'书名3':'33', '作者4':'王4'}]

json_str = json.dumps(book_dict_list, ensure_ascii=False)

print(type(json_str))

print(json_str)

JSON文件的读写操作--用到json包_第3张图片

你可能感兴趣的:(数据分析)