Python之json模块使用

JSON是目前使用最广发的数据交换格式,python提供了json模块来处理JSON数据。

主要方法

  • json.dumps(obj):将python对象转化成json字符串
  • json.dump():将Python对象转换成数据流
  • json.loads():将json字符串转换成Python对象
  • json.load():将数据流转换成Python对象

代码测试

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
# 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
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]}]

日常工作中,dumps()/loads()用的比较多。

有用就打赏一下作者吧!