json以及它的方法load、dump、loads、dumps

稍微详细点介绍下json及四个函数作用「load、dump、loads、dumps」如下:

JSON:

JSON是一种轻量级的数据交换语言,易于阅读,用来传输由属性值或者序列的值组成的数据对象。JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。很多时候我们见到的是形如字典(键值对)一样的数据格式,如下:

{
    "a": "hello world!",
    "b": [
        1,
        2,
        3,
        4
    ]
}
<class 'str'>    # 类型为str

json模块的四种方法:

在Python中调用import json库,我们可以方便的使用dumps、loads、dump、load等方法在Python数据格式和JSON数据格式之间转换。下面来简单介绍一下这四个方法的用法和功能。

函数描述
dumps将 Python数据类型(如字典,列表)编码成 JSON字符串
loads将已编码的 JSON字符串 解码为 Python数据类型(如上)
dumpjson.dump(data,fp),把数据data转换成 JSON str型 存到fp指向的文件(不限于json文件)
loadjson.load(fp),将fp指向的文件内容读取出来,并转换形如Python数据格式的 str 为Python数据格式

说明:JSON字符串 也就是 str 型,如上所说JS对象本质为字符串。

简单点理解就是:以上方法都是在 Python数据类型JSON字符串 之间转换,只是dumps、loads仅仅是转换,而dump、load方法会涉及到 存入内容 或 读取内容 到/从文件。

简短归纳如下:

dumps 可以将 Python字典(列表等) 转换为 形如字典(列表等)的 str数据;loads 可以将形如字典(列表等)的 str数据 转换为 Python字典(列表等);dump将Python数据 转换为 str数据 存入文件;load 读取文件内容为 str数据(此时可以使用loads转换为Python对象)。

下面代码说明:

原始字典:

df = {'b':[1,2,3,4],'a':'hello world!'}
print(df)
print(type(df))

{'b': [1, 2, 3, 4], 'a': 'hello world!'}
<class 'dict'>

dumps: 

df_dumps = json.dumps(df)
print(df_dumps)
print(type(df_dumps))

{"b": [1, 2, 3, 4], "a": "hello world!"}	# JSON字符串为""双引号
<class 'str'>

loads: 

df_loads = json.loads(df_dumps)
print(df_loads)
print(type(df_loads))

{'b': [1, 2, 3, 4], 'a': 'hello world!'}
<class 'dict'>

dump: 

with open('df.json','w') as f:
	# 可以使用这句话来转换数据与调整格式
	# df = json.dumps(df,sort_keys=True,indent=4,separators=(',',': '))
	json.dump(df,f)
	print('使用dump 已将字典df转换为 str 保存到文件')

使用dump 已将字典df转换为 str 保存到文件

load: 

with open('df.json','r') as f:
	json_load = json.load(f)
print(json_load)
print(type(json_load))

{'b': [1, 2, 3, 4], 'a': 'hello world!'}
<class 'dict'>

列表list类似如下:

df = [1,2,3,4]
print(df)
print(type(df))

df_dumps = json.dumps(df)
print(df_dumps)
print(type(df_dumps))

df_loads = json.loads(df_dumps)
print(df_loads)
print(type(df_loads))

with open('df.json','w') as f:
	json.dump(df,f)
	print('使用dump 已将字典df转换为 str 保存到文件')

with open('df.json','r') as f:
	json_load = json.load(f)
print(json_load)
print(type(json_load))

# 输出如下:
[1, 2, 3, 4]
<class 'list'>

[1, 2, 3, 4]
<class 'str'>

[1, 2, 3, 4]
<class 'list'>

使用dump 已将字典df转换为 str 保存到文件

[1, 2, 3, 4]
<class 'list'>

其实比较简单就是可能有点绕。

 

参考地址:

维基百科

百度百科

http://www.runoob.com/python/python-json.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值