如何使用Python语言对JSON对象进行编解码?JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人类读写。JSON函数需要导入json库才能使用JSON函数:importjson.函数说明:json.dumps将Python对象编码成JSON字符串json.loads将编码后的JSON字符串解码成Python对象语法: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)例如:将python数组对象转换为JSON字符串#!/usr/bin/pythonimportjsondata=[{'姓名':'张三','年龄':25},{'姓名':'李四','年龄':26}]jsonStr=json.dumps(data)print(jsonStr)result:[{"name":"\u5f20\u4e09","age":25},{"name":"\u674e\u56db","age":26}]例如:格式化JSON数据输出:**#!/usr/bin/pythonimportjsondata=[{'name':'张三','age':25},{'name':'李四','age':26}]jsonStr=json.dumps(data,sort_keys=True,indent=4,separators=(',',':'))print(jsonStr)**结果:[ { "age":25, "name":"\u5f20\u4e09" }, { "age":26, "name":"\u674e\u56db" }]上面格式化转换汉字rs到unicode。JSON字符串转python对象时,可以转汉字。如果不想转unicode,可以用下面的方法:**#!/usr/bin/pythonimportjsondata=[{'name':'张三','age':25},{'name':'李斯','age':26}]jsonStr=json.dumps(data,ensure_ascii=False)print(type(jsonStr))print(jsonStr)**Result:[{"name":"张三","age":25},{"name":"李四","age":26}]python原始类型转json类型转换表:json.loads 解码JSON数据该函数返回Python字段数据类型。语法:json.loads(s[,encoding[,cls[,object_hook[,parse_float[,parse_int[,parse_constant[,object_pairs_hook[,**kw]]]]]]]]例如:JSON字符串转py对象#!/usr/bin/pythonimportjsondata=[{'姓名':'张三','年龄':25},{'姓名':'李四','年龄':26}]jsonStr=json.dumps(data)print(jsonStr)jsonObj=json.loads(jsonStr)print(jsonObj)#获取集合的第一个print(jsonObj[1])结果[{"name":"\u5f20\u4e09","age":25},{"name":"\u674e\u56db","age":26}][{'name':'张三','age':25},{'name':'李四','age':26}]{'name':'李四','age':26}json类型转python类型对照表:Demjson第三方库的使用Demjson是一个第三方模块库,用于python,可用于对JSON数据进行Encode和decode,包括JSONLint的格式化和验证功能(1)encode()函数用于将Python对象编码为JSON字符串。语法demjson.encode(self,obj,nest_level=0)例如:#!/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}](2)demjson.decode()函数解码JSON数据。该函数返回Python字段的数据类型。语法:demjson.decode(self,txt)例如:将json字符串转成JSON对象:#!/usr/bin/pythonimportdemjsonjsonData='{"name":"张三","age":20,"sex":“男性”}';obj=demjson.decode(jsonData)print(obj)print(type(obj))result:{'name':'张三','age':20,'sex':'M'}