python中json库dumps\dump\loads\load

最近写一个爬虫,突然就遇到了json.dumps()方法,然后就学习一下json库

为什么要json库?

你以为数组是通用的,实际上数组并不是通用的,很多语言对于数组的定义方式都不同。json适合 不同语言传值,比如ajax请求, 你用浏览器的js去请求服务器接口, 用php或者jsp或者asp把数据打包成json数据 返回给 js js能很好的识别啊, 或者其他接口, 比如百度的天气接口, 等 json适合跨平台 从别人的服务器 把数据给你的程序 最好用json大家都识别。(上面来自百科)

json.dumps()与json.loads()

主要目的是将字典序列化,也就是把一个python的数据结构转化为json。

import json
data = {‘key1’:‘value1’,‘key2’:‘value2’}
print(type(data))
#<class ‘dict’>
json_data = json.dumps(data)
print(type(json_data))
#<class ‘str’>
print((json_data))
#{“key1”: “value1”, “key2”: “value2”}
print((data))
#{‘key1’: ‘value1’, ‘key2’: ‘value2’}
data1 =json.loads(json_data)
print((data1))
#{‘key1’: ‘value1’, ‘key2’: ‘value2’}
print(type(data1))
#<class ‘dict’>

也就是说将一个类型为字典的数据直接用json.dumps()直接转换就可以了
ps:list类型也可以转换

json.dump()与json.load()

这两个函数主要是用来处理文件的读写的。

json.dump()和dumps差一个s,功能作用大致上是一样,也是讲数据转换成str格式,最终包括了讲数据写入json文件的一个操作步骤,json.dump(data, file-open,ascii=False),可以包含三个属性,第三个ascii是用来避免出现unicode写入的乱码的

json.load():
  load()函数用于从json文件中读取数据,json.load(file-open)即可,这样可以还原在json文件中的原本的数据格式,诸如列表或者字典;file在open的时候最好是注意用encoding=‘utf-8’的编码,这样出来的数据就是原来的数据,而不会出现乱码

下面给出官方文档,可以发现其实dump就只是多了一个文件指针(类文件对象)的操作。
dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=‘utf-8’, default=None, sort_keys=False, **kw)
Serialize obj to a JSON formatted str.

dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=‘utf-8’, default=None, sort_keys=False, **kw)
Serialize obj as a JSON formatted stream to fp (a.write()-supporting file-like object).

fp = file(‘a.txt’,‘w’)
type(fp)
#file
json.dump(a,fp)

猜你喜欢

转载自blog.csdn.net/weixin_43914889/article/details/88546835
今日推荐