标签:python处理json
概念
序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON、XML等。反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态,重新创建该对象。
JSON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集。
Python2.6开始加入了JSON模块,无需另外下载,Python的Json模块序列化与反序列化的过程分别是 encoding和 decoding
encoding:把一个Python对象编码转换成Json字符串
decoding:把Json格式字符串解码转换成Python对象
对于简单数据类型(string、unicode、int、float、list、tuple、dict),可以直接处理。
转化对照如下:
从json到python的类型转化对照如下:
直接附代码:
# coding: utf-8 # FileName: TestJson import json # Python数据转json字符串 obj = [[1,2,3],123,123.123,‘abc‘,{‘key1‘:(1,2,3),‘key2‘:(4,5,6)}] # sort_keys 是告诉编码器按照字典排序(a到z)输出 # indent参数根据数据格式缩进显示,读起来更加清晰. # separators参数的作用是去掉,,:后面的空格,传输数据的过程中,越精简越好,冗余的东西全部去掉 encodejson = json.dumps(obj, sort_keys=True,indent=4,separators=(‘,‘,‘:‘)) # str()一般是将数值转成字符串。 # repr()是将一个对象转成字符串显示,注意只是显示用, print repr(obj) print encodejson # json字符串转Python strJson = r‘[[1, 2, 3], 123, 123.123, "abc", {"key2": [4, 5, 6], "key1": [1, 2, 3]}]‘ decodejson = json.loads(strJson) # decodejson为list print ‘decodejson[0]:‘, decodejson[0] print ‘decodejson[1]:‘, decodejson[1] for val in decodejson: print val # load()和dump()方法就可以实现写入文件,和读取文件 f = open("t.json", ‘w+‘) f.seek(0) json.dump(obj, f) #f.write(encodejson) f.flush() #注:要指回文件开始位置 f.seek(0) print json.load(f)
标签:python处理json
原文地址:http://8796902.blog.51cto.com/8786902/1565742