Python3 JSON

来源:互联网 发布:淘宝批量设置运费模板 编辑:程序博客网 时间:2024/06/03 07:50

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于ECMAScript的一个子集。Python3可以使用json模块对JSON数据进行编解码,有两个相关的函数

json.dumps():对数据进行编码

json.loads():对数据进行解码

在JSON的编解码过程中,python的原始数据类型与json类型可以相互转换,

python编码为json类型转换对应表
PythonJSONdictobjectlist, tuplearraystrstringint, floatnumberTRUETRUEFALSEFALSENonenulljson解码为python类型转换对应表
JSONPythonobjectdictarrayliststringstrnumber (int)intnumber (real)floatTRUETRUEFALSEFALSEnullNone实例

python数据结构编码为JSON:

>>> import json>>>>>> data1 ={...     'k1':123,...     'k2':'abc',...     'k3':456... }>>> type(data1)<class 'dict'>>>> json_str=json.dumps(data1)>>> print(data1){'k3': 456, 'k1': 123, 'k2': 'abc'}>>> print(json_str){"k3": 456, "k1": 123, "k2": "abc"}
可以看到,简单类型通过编码后跟原来很类似

解码JSON为python类型

>>> import json>>> data1 ={...     'k1':123,...     'k2':'abc',...     'k3':456... }>>> json_str=json.dumps(data1)>>> data2 = json.loads(json_str)>>> print(repr(data1)){'k3': 456, 'k1': 123, 'k2': 'abc'}>>> print(data2){'k3': 456, 'k1': 123, 'k2': 'abc'}>>> print(data2['k3'])456>>> type(data2)<class 'dict'>

如果是文件操作

# 写入 JSON 数据with open('data.json', 'w') as f:    json.dump(data, f)# 读取数据with open('data.json', 'r') as f:    data = json.load(f)