五周一次课(11月13日)


一、json的使用

Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。现在也常用于http请求中,所以对json的各种学习,是自然而然的事情。而我们将一下我们平时工作中最常用的两种方式。


1. json类型和python数据的转换

1.1 json.dumps()将python对象编码转化成json字符串。

import json
m = {'success': True, 'message': 'hello'}
json_str = json.dumps(m)
print(json_str)
print(type(json_str))

结果:

{"message": "hello", "success": true}
<type 'str'>

解释:

Data是一个python数据字典,最后通过json.dumps()函数把data转换成字符串的形式。

除了字典,python还有很多数据对象,如下列出python对象通过dumps()函数转换后的对应关系:

Python

JSON

dict

object

list, tuple

array

str, unicode

string

int, long,  float

number

True

true

False

false

None

null


1.2 json.loads()将json字符串解码成python对象。

在工作中,很多情况是别人给你提供的接口就是json字符串形式的。比如:你在数据库中查到的数据,返回结果是一个json的字符串的形式,这你就需要自己把这些json字符串转换成json对象。

import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'
text = json.loads(jsonData)
print text
print(type(text))

结果:

{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
<type 'dict'>

解释:

通过json.loads方法把json字符串转换成python的数据字典。


2 文件和json之间的转换

2.1 json.dump()

import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'
f = open('a.txt', 'w')
json.dump(jsonData,f)
f.close()

结果:

生成a.txt文件,内容如下:"{\"a\":1,\"b\":2,\"c\":3,\"d\":4,\"e\":5}"

解释:

json.dump()可以把json数据直接写入到文件中。


2.2  json.load()

import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'
f = open('a.txt', 'w')
json.dump(jsonData, f)
f.close()
aa = open('a.txt', 'r')
dict11 = json.load(aa)
print(dict11)
print(type(dict11))

结果:

{"a":1,"b":2,"c":3,"d":4,"e":5}
<type 'unicode'>

解释:

json.load()把文件内容转换成unicode数据类型返回