Python3内置模块之json编码解码方法讲解

 1.介绍
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,是基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,这些特性是JSON成为理想的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,在接口数据开发和传输中非常常用。
dumps:把数据类型转换成字符串
dump:把数据类型转换成字符串并存储在文件中
loads:把字符串转换成数据类型
load:把文件打开从字符串转换成数据类型

2.转换关系对照表

PythonJSON
dictobject
list,tuplearray
str,unicodestring
int,long,floatnumber
Truetrue
Falsefalse
Nonenull

3.dumps编码        

我们利用dumps将Python对象编码为JSON对象,dumps只完成了序列化为str,而dump必须传文件描述符,将序列化的str保存到文件中。

编码字典

import json
odata = {'www':1,'pythontab.com':2,'Python3':3}
jdata = json.dumps(odata)
print(jdata)

结果:

{"www": 1, "pythontab.com": 2, "Python3": 3}

编码列表

import json
ldata = [100,'Python2',{'www':1,'pythontab.com':2,'Python3':3}]
jdata = json.dumps(ldata)
print(jdata)

结果:

[100, "Python2", {"www": 1, "pythontab.com": 2, "Python3": 3}]

编码字符串

import json
sdata = 'Python3'
jdata = json.dumps(sdata)
print(jdata)

结果:

"Python3"

格式化输出JSON

将下面的数组,转化为标准的json格式

import json
ldata = ['Python3',100,{'www':1,'pythontab.com':2,'Python3':3},True]
jdata = json.dumps(ldata,sort_keys=True,indent=4)
print(jdata)

结果:

[
    "Python3",
    100,
    {
        "Python3": 3,
        "pythontab.com": 2,
        "www": 1
    },
    true
]

参数解析:

sort_keys=True,表示字典的输出会以键的顺序排序

indent=4,表示缩进为4,如果indent是一个非负整数或者字符串,那么JSON数组元素和对象成员会被美化输出为该值指定的缩进等级。

4.loads解码

我们利用loads用于解码JSON对象,解码结果是与之对应的Python对象类型,loads只完成了反序列化,load只接收文件描述符,完成读取文件和反序列化。

解码上个示例的数据

import json
jsondata = '''
[
    "Python3",
    100,
    {
        "Python3": 3,
        "pythontab.com": 2,
        "www": 1
    },
    true
]
'''
ldata = json.loads(jsondata)
print(type(ldata))
print(ldata)

结果:

<class 'list'>
['Python3', 100, {'Python3': 3, 'pythontab.com': 2, 'www': 1}, True]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值