python中的json模块
JSON模块
jsON就是javascript Object Notation,这个模块完成了python对象和JSON字符串的互相转换! json是一种很多语言支持的通用语言
作用:如下,作为一个桥梁 在api接口中数据调用传输中常用
PHP数据类型 <----> json格式 <---> Python
java数据类型 <----> json格式 <----> python
Mysql Text类型 <----> json格式 <----> python
json和python 字符类型的对比
| +-------------------+---------------+
| | Python | JSON |
| +===================+===============+
| | dict | object |
| +-------------------+---------------+
| | list, tuple | array |
| +-------------------+---------------+
| | str, unicode | string |
| +-------------------+---------------+
| | int, long, float | number |
| +-------------------+---------------+
| | True | true |
| +-------------------+---------------+
| | False | false |
| +-------------------+---------------+
| | None | null |
| +-------------------+---------------+
用途场景1:
一 、dumps函数
案例一: (案例只为演示效果)
cuizhiliangdeMacBook-air:test cuizhiliang$ cat 1.py
#!/usr/bin/env python
#encoding=utf8
import json
d = {'name':"张三", 'age':24, '有病': False }
print json.dumps(d)
结果:
cuizhiliangdeMacBook-Air:test cuizhiliang$ python 1.py
{"age": 24, "\u6709\u75c5": false, "name": "\u5f20\u4e09"}
案例二: 参数的效果:
#!/usr/bin/env python
#encoding=utf8
import json
d = {'name':"张三", 'age':24, '有病': False }
print json.dumps(d, ensure_ascii=False, indent=4, sort_keys=True)
结果:
{
"age": 24,
"有病": false,
"name": "张三"
}
常用参数:
ensure_ascii 默认是True,字符编码格式
sort_keys 是否对齐
indent=4 缩进问题
二、dump 和load函数,常用在文件流读中的用途场景1 用途,就像pickle这个模块的功能一样
json dump函数 将数据已sjon格式写入文件流中
cuizhiliangdeMacBook-Air:test cuizhiliang$ cat test_json_dump.py
#!/usr/bin/env python
#encoding=utf8
import json
f = file('file.json', 'w')
d = {'name':"张三", 'age':24, '有病': False }
json.dump(d, f, ensure_ascii=False, indent=4, sort_keys=True)
cuizhiliangdeMacBook-Air:test cuizhiliang$ python test_json_dump.py
存入文本结果:
cuizhiliangdeMacBook-Air:test cuizhiliang$ cat file.json
{
"age": 24,
"name": "张三",
"有病": false
}
区别json dumps 实现,dumps当然不是处理文件流的咯,要通过文件的write功能写入文件中
等价于:
cuizhiliangdeMacBook-Air:test cuizhiliang$ cat test_json_dumps.py
#!/usr/bin/env python
#encoding=utf8
import json
f = file('file.json', 'w')
d = {'name':"张三", 'age':24, '有病': False }
f.write(json.dumps(d, ensure_ascii=False, indent=4, sort_keys=True))
json load 从文件流中读取json数据
cuizhiliangdeMacBook-Air:test cuizhiliang$ cat test_json_load.py
#!/usr/bin/env python
# encoding: utf-8
import json
f = open('file.json', 'r')
d = json.load(f)
print type(d)
print d
cuizhiliangdeMacBook-Air:test cuizhiliang$
cuizhiliangdeMacBook-Air:test cuizhiliang$ python test_json_load.py
<type 'dict'>
{u'age': 24, u'\u6709\u75c5': False, u'name': u'\u5f20\u4e09'}
相关文章