码迷,mamicode.com
首页 > 编程语言 > 详细

python处理JSON

时间:2014-10-20 02:14:13      阅读:225      评论:0      收藏:0      [点我收藏+]

标签: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),可以直接处理。

转化对照如下:

bubuko.com,布布扣

从json到python的类型转化对照如下:

bubuko.com,布布扣


直接附代码:

# 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

标签:python处理json

原文地址:http://8796902.blog.51cto.com/8786902/1565742

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!