关于JSON文件
json文件在各个领域都是常客了,它的数据保存和传输都是以字符串的形式的,这在实际运用中有很大的价值,例如深度学习和TCP方面。
但是相信各位都有一点疑惑,当然我们在取出json里面的数据之后,再调用函数检测,它并不都是str格式,答案就在下文,请耐心观看。
json.load()和json.dump()
把这两个没有后缀s的放在一起,是因为它们的操作范围都是跨越的,下面进行解释。
#打开json文件
f = open("test.json")
#加载json文件里面的数据,把字符串转化为对应的数据格式
x = json.load(f)
dict = {"apple": 5}
#打开json文件
f = open("test.json")
将dict写入json文件
json.dump(dict,f)
可以看到,json.load()和json.dump()都是对json文件进行操作的。
json.loads()和json.dumps()
这两个函数对于初学者来说,用的地方比较少。
#创建一个字典
dict = {"apple": 5}
#把字典转化为字符串的格式(python->json)
temp1 = json.dumps(dict)
print(type(temp1))
#把字符串转化为字典(json->python)
temp2 = json.loads(temp1)
print(type(temp2))
输出结果为
<class 'str'>
<class 'dict'>
JSON的数据格式
json文件里面是什么数据格式其实都是随意的,我举例一种比较常用的。
#字典中嵌套字典,可以看到,除了数字,其他都带有双引号。
{"apple":{"price":5,"weight":"whatever"} ,
"banana":{"price":7,"weight":"whatever"}}
如果你想获得每种水果的价格
#设上面的代码存放在fruits.json文件里
price = [] #用于存放价格
f = open("fruits.json")
value = json.load(f)
price.append(value[x][‘price’]) for x in value
print(price)
输出
[5,7]