1、 Python 对象转为 JSON 串
函数 : json.dumps()
功能 : 把 Python 对象转变为 JSON 串
参数 : 可以是列表,字典,字符串, bool 类型等 Python 对象都可以
返回类型 : 字符串
备注 : /
# -*- coding: UTF-8 -*- import json listJson = json.dumps([1, 2, 3]) print 'json.dumps() 返回类型为:', type(listJson) print '列表转换为 json 是:', listJson dicJson = json.dumps({'aaa' : 1, 'bbb' : 2, 'ccc' : 3}) print '字典转换为 json 是:', dicJson
运行结果
json.dumps() 返回类型为: <type 'str'> 列表转换为 json 是: [1, 2, 3] 字典转换为 json 是: {"aaa": 1, "bbb": 2, "ccc": 3}
2、 JSON 串转变为 Python 对象
函数 : json.loads()
功能 : JSON 串转变为 Python 对象
参数 : JSON 串
返回类型 : 根据转换的 JSON 串来确定,比如转换字典,返回类型就是字典,转换列表,返回类型就是列表
备注 : /
# -*- coding: UTF-8 -*- import json nowPythonObject = json.loads('{"aaa": 1, "bbb": 2, "ccc": 3}') print type(nowPythonObject) print nowPythonObject print type(json.loads('[1, 2, 3]')) print json.loads('[1, 2, 3]')
运行结果
<type 'dict'> {u'aaa': 1, u'bbb': 2, u'ccc': 3} <type 'list'> [1, 2, 3]
PS : 咦,怎么转变的字典中有个 'u' 呢,它其实是代表 unicode 码类型,表示解析出来的 Python 对象 aaa 是用 unicode 码进行编码的
3、 读取 .json 文件
函数 : json.load()
功能 : 读取 .json 文件
参数 : .json 文件对象,直接传递 .json 文件路径是不可以的,必须打开 .json 文件,然后传递打开的文件对象
返回类型 : 根据转换的 JSON 串来确定,比如转换字典,返回类型就是字典,转换列表,返回类型就是列表
# -*- coding: UTF-8 -*- import json filePointer = open('testJson.json', 'r') print json.load(filePointer) filePointer.close()
运行结果
{u'a': [100, {u'10': [[u'iPhone', 3600], [u'Xiaoming', 20], [u'Xiaohong', 30]]}]}
4、 常见错误
异常信息提示
No JSON object could be decoded
错误原因分析(第一种代码错误直接看截图,第二种是 .json 文件不正确,重新找一个 .json 文件即可)
解决办法 : 直接删除错误原因的那一行,你可以对照该错误案例来跟正你的代码 (还有一种情况就是 .json 文件不正确,那样子你需要找一个对的 .json 文件)