五周一次课(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数据类型返回