Python操作JSON数据

1.JSON的介绍

说得简单一点,JSON的格式就是由一对对的属性和值构成的,听到这里是不是觉得很像我们常说的字典对象,其实它是差不多的意思,具体要深入的了解JSON的有关概念,请到维基百科上面去搜索有关信息,这里就不详细说了

2.Python操作JSON

在python的不同版本中操作JSON所有的包还是不太相同的,方法也有不同。

本文测试用的python版本是高于python2.5的,具体见下面的操作:

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python
# -*- coding=utf-8 -*-

#python中可以使用JSON模块来进行python对象(python_obj)和json对象(json_str)(备注:其实json对象就是一个字符串形式的表示)的转换

import json

#定义一个python_obj
python_obj = {"name":"kingiol", "age":58, "sons":[{"name":"son1", "age":20}, {"name":"son2", "age": 18}]}

#1.python_obj转换成json_str
json_str1 = json.dumps(python_obj)

#2.json_str转换成python_obj
python_obj1 = json.loads(json_str1)

#此时转换出来的python_obj1就是一个python对象,其实就是一个字典对象.
#如果是从网络上面介绍JSON的对象过来,可以用上述方法进行转换变成

print python_obj1["name"], python_obj1["age"]

print '*'*20

#3.如果想让json进行格式化输出,便于阅读,可以用如下方法

print json.dumps(python_obj, indent=2)

运行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
kingiol 58
********************
{
"age": 58,
"sons": [
{
"age": 20,
"name": "son1"
},
{
"age": 18,
"name": "son2"
}
],
"name": "kingiol"
}

3.小甜点:

有的时候我们要测试一个函数的运行性能,要让它运行多次看要消耗多长的时候,通常我们是用循环来进行测试的,现在我们可以用timeit模块中的Timer来进行操作,具体的操作代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env python
# -*- coding=utf-8 -*-

from timeit import Timer

n = 0
def test_print():
global n
n = n + 1

print "测试前 n的值:%d" % n

t = Timer("test_print()", "from __main__ import test_print")
print "函数运行的时间", t.timeit(number = 10000)

print "测试后n的值:%d" % n

运行的结果:

测试前 n的值:0

函数运行的时间 0.00318708299477

测试后n的值:10000

文章目录
,