Python之json模块使用
JSON是目前使用最广发的数据交换格式,python提供了json模块来处理JSON数据。
# 主要方法
- json.dumps(obj):将python对象转化成json字符串
- json.dump():将Python对象转换成数据流
- json.loads():将json字符串转换成Python对象
- json.load():将数据流转换成Python对象
# 代码测试
# encoding=utf-8
# json模块使用
import logging
import json
from StringIO import StringIO
logging.basicConfig(level = logging.DEBUG, format='%(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
# 将python对象转化成json字符串
json_data = json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
logger.debug(json_data)
json_io = StringIO()
# 将Python对象写入数据流
json.dump(['foo', {'bar': ('baz', None, 1.0, 2)}], json_io)
logger.debug(json_io)
logger.debug(json_io.getvalue())
# 将json字符串转换成Python对象
data = json.loads(json_data)
logger.debug(data)
# 将数据流转换成Python对象
json_io = StringIO('["foo", {"bar": ["baz", null, 1.0, 2]}]')
data = json.load(json_io)
logger.debug(data)
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
27
28
29
30
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
27
28
29
30
输出结果:
DEBUG - ["foo", {"bar": ["baz", null, 1.0, 2]}]
DEBUG - <StringIO.StringIO instance at 0x108429f80>
DEBUG - ["foo", {"bar": ["baz", null, 1.0, 2]}]
DEBUG - [u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
DEBUG - [u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
1
2
3
4
5
2
3
4
5
日常工作中,dumps()/**loads()**用的比较多。
上次更新: 2022/12/01, 11:09:34