inpython1前言最近一直在做开发相关的工作--基于Django的web平台,其中需要将数据从model层传递到view层,用于数据展示或者业务逻辑处理。我们采用通用的Json格式——Json(JavaScriptObjectNotation)是一种轻量级的数据交换格式,便于阅读和程序分析。2理解Json2.1Json结构常见的Json格式是“名/值”对的集合,其中的值可以是对象、列表、字典、字符串等。例如backup_data={"back_to_host":"dbbk0","ip_address":"10.10.20.3","host_name":"rac4","port":3306}2.2使用JsonPython的Json模块进行序列化和反序列化过程分别是编码和解码。这两个过程涉及两组不同的函数编码,将Python对象编码为Json字符串,以及json.dumps(data)/json.dump(data,file_handler)将Json格式字符串解码转换为Python对象。json.loads(data)/json.load(file_handler)在python中使用Json模块做相关操作,首先要导入:importJson2.3主要函数编码函数主要有json.dumps(data)/json.dump(data,file_handler)json.dumps()的参数是将python对象转成字符串,比如使用json.dumps序列化的对象json_dumps=json.dumps({'a':1,'b':2}),json_dumps='{"b":2,"a":1}'json.dump将内置类型序列化为json对象写入文件。解码函数主要由json.loads(data)/json.load(file_handler)组成,json.loads的参数是一个内存对象,将Json格式的字符串解码转换成Python对象,json_loads=json.loads(d_json)#{b":2,"a":1},使用load重新反序列化为文件句柄的dictjson.load()的参数,比如本地有一个文件/tmp/test.jsonjson_load=json.load(open('/tmp/test.json'))具体案例参考如下:In[3]:data={"back_to_host":"rac1",...:"ip_address":"10.215.20.3",...:"host_name":"rac3",...:"port":3306}In[7]:json_str=json.dumps(data)In[8]:printjson_str{"ip_address":"10.215.20.3","back_to_host":"rac1","host_name":"rac3","port":3306}In[9]:json_loads=json.load(json_str)------------------------------------------------------------------------AttributeErrorTraceback(最近调用最后)
