PythonJSON本章我们将介绍如何使用Python语言对JSON对象进行编解码。JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人类读写。JSON函数需要导入json库才能使用JSON函数:importjson.函数说明json.dumps将Python对象编码为JSON字符串json.loads将编码后的JSON字符串解码为Python对象json.dumpsjson.dumps用于将Python对象编码为JSON字符串。语法json.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)示例下面的示例将数组编码成JSON格式的数据:示例#!/usr/bin/pythonimportjsondata=[{'a':1,'b':2,'c':3,'d':4,'e':5}]data2=json.dumps(data)print(data2)上面代码的执行结果为:[{"a":1,"c":3,"b":2,"e":5,"d":4}]使用参数格式化JSON数据的输出:例子#!/usr/bin/pythonimportjsondata=[{'a':1,'b':2,'c':3,'d':4,'e':5}]data2=json.dumps({'a':'Runoob','b':7},sort_keys=True,indent=4,分隔符=(',',':'))print(data2)以上代码执行结果为:{"a":"Runoob","b":7}Python原始类型转json类型对照表:PythonJSONdictobjectlist,tuplearraystr,unicodestringint,long,floatnumberTruetrueFalsefalseNone使用了nulljson.loadsjson.loads解码JSON数据。该函数返回Python字段的数据类型。语法json.loads(s[,encoding[,cls[,object_hook[,parse_float[,parse_int[,parse_constant[,object_pairs_hook[,**kw]]]]]]])示例下面的示例展示了Python如何解码JSON对象:instance#!/usr/bin/pythonimportjsonjsonData='{"a":1,"b":2,"c":3,"d":4,"e":5}';text=json.loads(jsonData)print(text)上面代码的执行结果为:{u'a':1,u'c':3,u'b':2,u'e':5,u'd':4}json类型转python类型对照表:JSONPythonobjectdictarrayliststringunicodenumber(int)int,longnumber(real)floattrueTruefalseFalsenullNone更多内容参考:https://docs.python.org/2/库/json。HTML。使用第三方库:DemjsonDemjson是python的第三方模块库,可以用来对JSON数据进行编解码,包括JSONLint的格式化和校验功能。Github地址:https://github.com/dmeranda/demjson官方地址:http://deron.meranda.us/python/demjson/环境配置在使用Demjson对JSON数据进行编码或解码之前,我们需要安装Demjson模块第一的。在本教程中,我们将下载并安装Demjson:$tar-xvzfdemjson-2.2.3.tar.gz$cddemjson-2.2.3$pythonsetup.pyinstall有关更多安装说明,请查看:http://deron。meranda.us/python/demjson/installJSONFunction函数说明encode将Python对象编码为JSON字符串decode将编码后的JSON字符串解码为Python对象encodePythonencode()函数用于将Python对象编码为JSON字符串。语法demjson.encode(self,obj,nest_level=0)示例以下示例将数组编码为JSON格式数据:示例#!/usr/bin/pythonimportdemjsondata=[{'a':1,'b':2,'c':3,'d':4,'e':5}]json=demjson.encode(data)print(json)上面代码的执行结果为:[{"a":1,"b":2,"c":3,"d":4,"e":5}]decodePython可以使用demjson.decode()函数来解码JSON数据。该函数返回Python字段的数据类型。语法demjson.decode(self,txt)示例以下示例显示Python如何解码JSON对象:示例#!/usr/bin/pythonimportdemjsonjson='{"a":1,"b":2,"c":3,"d":4,"e":5}';text=demjson.decode(json)print(text)上面代码的执行结果为:{u'a':1,u'c':3,你'b':2,你'e':5,你':4}
