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()**用的比较多。