Python3内置json模块编码解码方法详解

目录
  • JSON简介
  • dumps编码
    • 编码字典
    • 编码列表
    • 编码字符串
    • 格式化输出JSON
    • 转换关系对照表
  • loads解码
  • 总结

JSON简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,在接口数据开发和传输中非常常用。

Python3中我们利用内置模块json解码和编码JSON对象。json模块提供了四个功能:dumps、dump、loads、load

dumps 把数据类型转换成字符串 

dump  把数据类型转换成字符串并存储在文件中

loads 把字符串转换成数据类型  

load  把文件打开从字符串转换成数据类型

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, "Python3", {"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 数组元素和对象成员会被美化输出为该值指定的缩进等级。

转换关系对照表

下面为Python原始类型向JSON对象的转化对照表:

Python JSON
dict object
list, tuple array
str, unicode string
int, long, float number
True true
False false
None null

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]

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

总结

Python3中的json解析和编码模块json使用起来非常简单, 功能也非常齐全,完全能够满足我们日常的需求。

好了关于Python3内置json模块编码解码方法就讲到这里,更多关于Python3内置json模块的使用方法请查看下面的相关链接

(0)

相关推荐

  • Python3实现将本地JSON大数据文件写入MySQL数据库的方法

    本文实例讲述了Python3实现将本地JSON大数据文件写入MySQL数据库的方法.分享给大家供大家参考,具体如下: 最近导师给了一个yelp上的评论数据,数据量达到3.55个G,如果进行分析时直接使用本地文件,选择python来分析,那么效率是非常低的:另一方面使用SQL来储存文本文件最为安全,之前使用CSV,txt存储的文本文件最后莫名其妙地出现一些奇怪字符,导致读取数据分割时出现错乱.下面给出一个简单的代码,将本地JSON文件内容存入数据库. 说明:python版本为3.5,使用第三方库为

  • python3实现从kafka获取数据,并解析为json格式,写入到mysql中

    项目需求:将kafka解析来的日志获取到数据库的变更记录,按照订单的级别和订单明细级别写入数据库,一条订单的所有信息包括各种维度信息均保存在一条json中,写入mysql5.7中. 配置信息: [Global] kafka_server=xxxxxxxxxxx:9092 kafka_topic=mes consumer_group=test100 passwd = tracking port = 3306 host = xxxxxxxxxx user = track schema = track

  • Python3自定义json逐层解析器代码

    用python3对json内容逐层进行解析,拿中国天气网的接口返回数据测试, 代码如下: # -*- coding: utf-8 -*- import operator as op from collections import defaultdict class Json(object): def __init__(self, json: str): sth = eval(json) load = lambda sth: sth if op.eq(type(sth).__name__, dic

  • Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】

    本文实例讲述了Python3爬虫爬取百姓网列表并保存为json功能.分享给大家供大家参考,具体如下: python3爬虫之爬取百姓网列表并保存为json文件.这几天一直在学习使用python3爬取数据,今天记录一下,代码很简单很容易上手. 首先需要安装python3.如果还没有安装,可参考本站python3安装与配置相关文章. 首先需要安装requests和lxml和json三个模块 需要手动创建d.json文件 代码 import requests from lxml import etree

  • python3 实现的对象与json相互转换操作示例

    本文实例讲述了python3 实现的对象与json相互转换操作.分享给大家供大家参考,具体如下: 1. python主要有三种数据类型:字典.列表.元组,其分别由花括号,中括号,小括号表示. 例如: 字典:dictData={'a':12,'b':34} 列表:listData=[1,2,3,4] 元组:tupleData=(1,2,3,4) 2. 使用json时,导入import json即可 3. python对象转json字符串,主要用到的函数:json.dumps().例如:示例1: #

  • Python3中对json格式数据的分析处理

    前言 数据已经过修改,以防泄密,请放心阅读 今天同事提出一个需求,要求我修改之前的某脚本,该脚本的作用是获取zabbix监控系统返回的json数据,我的任务是使其变成易读的文本,如何获取数据不在此赘述,只描述如何对json数据进行处理 一.如何将json数据转换成python内部的数据类型 展示一下zabbix的接口返回的json数据(数据经过dumps编码了,因为原数据为str类型,只有一行,不易读) js = json.dumps(get_alert(), indent=4, ensure_

  • 解决python3 json数据包含中文的读写问题

    python3 默认的是UTF-8格式,但在在用dump写入的时候仍然要注意:如下 import json data1 = { "TestId": "testcase001", "Method": "post", "Title": "登录测试", "Desc": "登录基准测试", "Url": "http://xxx

  • python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)

    python3 json数据格式的转换(dumps/loads的使用.dict to str/str to dict.json字符串/字典的相互转换) Python3 JSON 数据解析 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数: json.dumps(): 对数据进行编码. json.loads(): 对数据进

  • Python3实现的字典、列表和json对象互转功能示例

    本文实例讲述了Python3实现的字典.列表和json对象互转功能.分享给大家供大家参考,具体如下: python3可以使用json模块操作json json.dumps(): 对json进行编码,对应php的json_encode() json.loads(): 对json进行解码,对应php的json_decode() test.py #!/usr/bin/python3 import json #python字典类型转换为json对象 data = { 'id' : 1, 'name' :

  • Python3 json模块之编码解码方法讲解

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,在接口数据开发和传输中非常常用. Python3中我们利用内置模块json解码和编码JSON对象.json模块提供了四个功能: dumps.dump.loads.load dumps 把数据类型转换成字符串  dump  把数据类型转换成字符串

随机推荐