python的Json模块:
load 与 loads 都是用于encode编码,将python数据(对象)转换成json数据(对象)
dump 与 dumps 都是用于decode解码,将json数据(对象)转换成python数据(对象)
load 与 loads 和 dump 与 dumps 的区别:
load,dump类似,同样都是操作文件句柄,比如本地有一个a.json文件名的json文件
使用 json_file = json.load(open('a.json'))
使用 json.dump(dict,open('a.json',"w"))将dict字典序列化为json对象存入到a.json文件当中
loads,dumps类似,同样都是操作内存对象,
loads将python数据转化成json数据
dumps将json数据转化成python数据
数据转换
Decoder数据转换:
JSON --> Python
object dict
array list
string str
number (int) int
number (real) float
true True
false False
null None
Encoder数据转换:
Python --> JSON
dict object
list, tuple array
str string
int, float, int- numver
float-derived Enums number
True true
False false
None null
序列化: 将数据结构或对象转换成二进制串的过程
反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程
例子:
# loads方法
import json
jsonData = '{"a":1,"b":2}'; ==>python利用type方法看到jsonData是str对象
test = json.loads(jsonData) ==>python利用type方法看到test的是dict字典对象
print (test)
print (test.get('b'))
#结果
{'b': 2, 'a': 1}
2
# dumps dump,load方法
data = [{"a":"aaa","b":"bbb","c":[1,2,3,(4,5,6)]},33,'tantengvip',True] ==>python的列表
data1 = json.dumps(data) ==>data1为字符串类型
file = open('data.json','a')
json.dump(data1,file)
file.close()
file1 = open('data.json','r')
data2 = json.load(file1)
print (data2)
json格式数据转换存在第三方库:
Demjson
gitgub地址:
https://github.com/dmeranda/demjson
example:
>>> import demjson
>>> demjson.encode( ['one',42,True,None] ) # From Python to JSON
'["one",42,true,null]'
>>> demjson.decode( '["one",42,true,null]' ) # From JSON to Python
['one', 42, True, None]