Python JSON

本章节我们将为大家介绍如何使用 Python 语言来编码和解码 JSON 对象。

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。

JSON 函数

使用 JSON 函数需要导入 json 库:import json

函数      描述

son.dumps     将 Python 对象编码成 JSON 字符串

json.dumps

json.dumps 用于将 Python 对象编码成 JSON 字符串。

语法

json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)

实例

以下实例将数组编码为 JSON 格式数据:

import json

data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]

json = json.dumps(data)
print json

以上代码执行结果为:

[{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]

使用参数让 JSON 数据格式化输出:

>>> import json
>>> print json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
{
"a": "Runoob",
"b": 7
}

python 原始类型向 json 类型的转化对照表:

dict                               object

list, tuple                      array

str, unicode                   string

int, long, float                number

json.loads

json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。

语法
json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])

实例

以下实例展示了Python 如何解码 JSON 对象:

import json

jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

text = json.loads(jsonData)
print text

以上代码执行结果为:

{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}

使用第三方库:Demjson

Demjson 是 python 的第三方模块库,可用于编码和解码 JSON 数据,包含了 JSONLint 的格式化及校验功能。

Github 地址:https://github.com/dmeranda/demjson

官方地址:http://deron.meranda.us/python/demjson/

JSON 函数

函数 描述
encode 将 Python 对象编码成 JSON 字符串
decode 将已编码的 JSON 字符串解码为 Python 对象

encode

Python encode() 函数用于将 Python 对象编码成 JSON 字符串。

语法

demjson.encode(self, obj, nest_level=0)

decode

Python 可以使用 demjson.decode() 函数解码 JSON 数据。该函数返回 Python 字段的数据类型。

语法

demjson.decode(self, txt)

最新文章

  1. RFID考试背诵
  2. Nodejs与ES6系列4:ES6中的类
  3. 天朝使用GAE入门指南
  4. Python编程核心之makeTextFile.py和readTextFile.py
  5. MDX语法
  6. c#调用系统资源大集合-3
  7. svn的搭建
  8. 面试题_93_to_102_编程和代码相关的面试题
  9. python测试框架--nose
  10. 升级到macSierra 10.12之后 在模拟器上面滑动视图很卡,
  11. Oracle 11g DG手工switchover切换标准化流程
  12. 清除SqlServer日志
  13. 第一讲 新手如何学习HTTP协议之实践项目多开微信机器人
  14. bootstrapTable treegrid的使用
  15. React Native 调用 Web3(1.x) 的正确姿势
  16. mycat实现mysql数据库的垂直切分
  17. odoo之可选择多个内容显示问题
  18. SIFT(Scale-invariant feature transform) & HOG(histogram of oriented gradients)
  19. Linux 上安装Docker 并部署netcor2.1
  20. Linux汇编教程04:寻址方式

热门文章

  1. 解决MOFH免费空间cpanel面板大文件无法解压的情况
  2. Actifio OnVault 8.0
  3. java-使用Jacob实现office转换成pdf
  4. c# 正则表达式取值、替换
  5. laravel+Redis简单实现队列通过压力测试的高并发处理
  6. 关于让simulink中display组件显示二进制的方法
  7. 解决C#程序只允许运行一个实例的几种方法详解
  8. MVC4 5分页控件,支持Ajax AjaxOption支持
  9. solr的基础使用
  10. 51nod1227 平均最小公倍数