Python3内置模块之json编解码方法小结【推荐】

yipeiwu_com7年前Python基础

Python3中我们利用内置模块 json 解码和编码 JSON对象 ,JSON(JavaScript Object Notation)是指定 RFC 7159(废弃了RFC 4627)和 ECMA-404是一种轻量级数据交换格式,受 JavaScript对象文字语法的启发 (虽然它不是JavaScript 1的严格子集)。下面为Python对象-->JSON对象的对照关系表。

dumps编码

我们利用 dumps 将Python对象编码为 JSON对象 ,当然 dumps 只完成了序列化为str,而 dump 必须传文件描述符,将序列化的str保存到文件中,它们的函数定义为 dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw) dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)

编码字典

import json 
D = {'one': 1, 'two': 2, 'three': 3}
J = json.dumps(D)
print(J)

示例结果:

{"one": 1, "two": 2, "three": 3}

编码列表

import json 
L = [1, 'Python ', {'one': 1, 'two': 2, 'three': 3}, '']
J = json.dumps(L)
print(J)

示例结果:

[1, "Python ", {"one": 1, "two": 2, "three": 3}, ""]

编码

import json 
S = 'Python'
J = json.dumps(S)
print(J)

示例结果:

"Python"

格式化输出JSON

import json 
L = [1, 'Python ', {'one': 1, 'two': 2, 'three': 3}, True]
J = json.dumps(L, sort_keys=True, indent=4)
print(J)

示例结果:

[
  1,
  "Python ",
  {
    "one": 1,
    "three": 3,
    "two": 2
  },
  true
]

loads解码

我们利用 loads 用于解码 JSON对象 。解码结果即与之对应的 Python对象 类型。当然 loads 只完成了反序列化, load 只接收文件描述符,完成读取文件和反序列化。它们的函数定义为 loads(s, *, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw) load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw) 比如我们用来解码上个示例的数据

import json 
jsondata = '''
[
  1,
  "Python ",
  {
    "one": 1,
    "three": 3,
    "two": 2
  },
  true
]
'''
J = json.loads(jsondata)
print(type(J))
print(J)

示例结果:

<class 'list'>
[1, 'Python ', {'one': 1, 'three': 3, 'two': 2}, True]

可以看到我们成功对上个例子中的JSON对象进行了解码,并且最终的解码结果为Python列表对象类型,符合Python对象-JSON对象对照表的结果。

总结

以上所述是小编给大家介绍的Python3内置模块之json编解码方法小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

Python大数据之使用lxml库解析html网页文件示例

Python大数据之使用lxml库解析html网页文件示例

本文实例讲述了Python大数据之使用lxml库解析html网页文件。分享给大家供大家参考,具体如下: lxml是Python的一个html/xml解析并建立dom的库,lxml的特点是...

对python过滤器和lambda函数的用法详解

1. 过滤器 Python 具有通过列表解析 将列表映射到其它列表的强大能力。这种能力同过滤机制结合使用,使列表中的有些元素被映射的同时跳过另外一些元素。 过滤列表语法: [ mappi...

Python学习笔记之集合的概念和简单使用示例

本文实例讲述了Python学习笔记之集合的概念和简单使用。分享给大家供大家参考,具体如下: 集合 概念解释:一个包含唯一元素的可变和无序的集合数据类型。集合的一个用途是快速删除列表中的重...

详解Python中最难理解的点-装饰器

详解Python中最难理解的点-装饰器

本文将带领大家由浅入深的去窥探一下,这个装饰器到底是何方神圣,看完本篇,装饰器就再也不是难点了. 一、什么是装饰器 网上有人是这么评价装饰器的,我觉得写的很有趣,比喻的很形象 每个...

Python函数的定义方式与函数参数问题实例分析

Python函数的定义方式与函数参数问题实例分析

本文实例讲述了Python函数的定义方式与函数参数问题。分享给大家供大家参考,具体如下: 涉及内容: 函数的定义方式 函数的文字描述 空操作语句 位置参数 默认参...