最近接到了一个小任务,虽然任务的难度不高,但还是学到了点知识。主要的就是json文件的生成与解析。
首先为什么要生成json文件呢,主要是为了后面解析的时候需要json文件来进行分析。所以进入正题:
json文件的生成主要用到的函数就是json.dump(),该函数时将python个数的文件转换为json格式的。
下面给出一个例子:
import urllib
from urllib.request import urlopen
import json
import os
# 随便定义一些需要保存的变量
test_dict1 = {'img':[{'name': 'a.jpg','code' : 1014},{'name': 'j.jpg','code' : 1}]}
test_dict2 = {'img':[{'name': 'b.jpg','code' : 1015},{'name': 'k.jpg','code' : 105}]}
test_dict3 = {'img':[{'name': 'c.jpg','code' : 1012},{'name': 'l.jpg','code' : 1014}]}
# 文件的保存路径
with open("./a.json",'w') as fa:
json.dump(test_dict1,fa)
print("a success")
with open("./b.json",'w') as fb:
json.dump(test_dict2,fb)
print("b success")
with open("./c.json",'w') as fc:
json.dump(test_dict3,fc)
print("a success")
这样,最终可以输出三个json文件(以第一个为例)
在有了需要解析的json文件之后,接下来需要就是调用json模块去读取并解析该文件。然后对解析到的文件内容进行相关的操作。
解析的代码段比较简单,主要用到的函数是json.load():
with open('./a.json',"r") as load_f:
load_dict = json.load(load_f)
num_class = len(load_dict['image'])
for num in range(num_class):
each_name = load_dict['img'][num]['name']
each_code = load_dict['img'][num]['code']
print(each_name, '\t', ' ',each_code)
运行的结果:
这就简单的实现了json文件的生成与解析。
指的注意的是:
1、json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)json.dumps()函数是将一个Python数据类型列表进行json格式的编码,json.loads()函数是将json格式数据转换为字典。
2、json.dump()和json.load()主要用来读写json文件函数