出处:https://www.cnblogs.com/xiaomingzaixian/p/7286793.html
首先说明基本功能:
dumps是将dict转化成str格式,loads是将str转化成dict格式。
dump和load也是类似的,只是与文件操作结合起来了。
一、概念理解
1、json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)
(1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)
(2)json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典)
2、json.dump()和json.load()主要用来读写json文件函数
总结:
1、json.dumps : dict转成str, json.loads : str转成dict
2、json.dump是将python数据转成json,存到文件中
3、json.load是将文件中的json数据读取出来
使用 JSON 函数需要导入 json 库:import json。
函数 | 描述 |
---|---|
json.dumps | 将 Python 对象编码成 JSON 字符串 |
json.loads | 将已编码的 JSON 字符串解码为 Python 对象 |
In [1]: import json
In [2]: a = {'name': 'wang', 'age': 29}
In [3]: b = json.dumps(a)
In [4]: print b, type(b)
{"age": 29, "name": "wang"}
In [11]: json.loads(b)
Out[11]: {u'age': 29, u'name': u'wang'}
In [12]: print type(json.loads(b))
json.dumps是将一个Python数据类型列表进行json格式的编码解析,
示例如下:
>>> import json #导入python 中的json模块
>>> l = [‘iplaypython’,[1,2,3], {‘name’:’xiaoming’}] #创建一个l列表 >>> encoded_json = json.dumps(l) # 将l列表,进行json格式化编码 >>> print repr(l) >>> print encoded_json #输出结果
这样我们就将一个list列表对象,进行了json格式的编码转换。
解码python json格式,可以用这个模块的json.loads()函数的解析方法,
示例如下:
>>> decode_json = json.loads(encoded_json)
>>> print type(decode_json) #查看一下解码后的对象类型
>>> print decode_json #输出结果
将python json格式解码成Python数据风格
json.dump和json.dumps很不同,json.dump主要用来json文件读写,和json.load函数配合使用。
json.dump(x,f),x是对象,f是一个文件对象,这个方法可以将json字符串写入到文本文件中。
import json
data = [{"a":"aaa","b":"bbb","c":[1,2,3,(4,5,6)]},33,'tantengvip',True] data2 = json.dumps(data) print(data2) f = open('./tt.txt','a') json.dump(data2,f)
这样就生成了一个tt.txt文件,保存了json格式的数据。dumps还提供pritty print,格式化的输出。
json.load加载json格式文件 下面是从txt文件中读取了json数据。
f = open('./tt.txt','r')
hehe = json.load(f)
print(hehe)
如果你要处理的是文件而不是字符串,你可以使用json.dump()和json.load()来编码和解码JSON数据。例如:
# Writing JSON data
with open('data.json', 'w') as f:
json.dump(data, f)
# Reading data back
with open('data.json', 'r') as f:
data = json.load(f)
总结:
1、json.dumps : dict转成str
2、json.dump是将python数据保存成json
3、json.load是将文件中的json数据读取出来