我心中的王者:Python-第24章 JSON资料

我心中的王者:Python-第24章 JSON资料

JSON是一种数据格式,由美国程序设计师Douglas Crockford创建的,JSON全名是JavaScript Object Notation,由JSON英文全文字义我们可以推敲JSON的缘由,最初是为JavaScript开发的。这种数据格式由于简单好用被大量应用在Web开发与大数据数据库(NoSQL),现在已成为一种著名数据格式,Python与许多程序语言同时采用与支持。也由此在使用Python设计程序时,可以将数据以JSON格式存储,与其他程序语言的设计师分享。

Python程序设计时需使用import json导入json模块。

24-1 认识json数据格式

json的数据格式有2种,分别是:

对象(object):一般用大括号{ }表示。

数组(array):一般用中括号[ ]表示。

24-1-1 对象(object)

在json中对象就是用“键-值(key:value)”方式配对存储,对象内容用左大括号“{”开始,右大括号“}”结束,键(key)和值(value)用“:”区隔,每一组键:值间以逗号“,”隔开,以下是取材自json.org的官方图说明。
在这里插入图片描述

在json格式中键(key)是一个字符串(string)。值可以是数值(number)、字符串(string)、布尔值(bool)、数组(array)或是null值。

例如:下列是对象的实例。

 {"Name":"Hung","Age":25}

使用json时需留意,键(key)必须是文字,例如下列是错误的实例。

 {"Name":"Hung", 25:"Key"}

在json格式中字符串需用双引号,同时在json文件内不可以有批注。

24-1-2 数组(array)

数组基本上是一系列的值(value)所组成,用左中括号“[”开始,右中括号“]”结束。各值之间用逗号“,”隔开,以下是取材自json.org的官方图说明。

在这里插入图片描述

数组的值可以是数值(number)、字符串(string)、布尔值(bool)、数组(array)或是null值。
在这里插入图片描述

24-1-3 json数据存在方式

前两节所述是json的数据格式定义,但是在Python中它存在方式是字符串(string)。

 ‘json数据'  # 可参考程序实例ch24_1.py的第3个输出

使用json模块执行将Python数据转成json字符串类型数据或json文件使用不同方法,下面24-2和24-3节将分别说明。

24-2 将Python应用在json字符串形式数据

本节主要说明json数据以字符串形式存在时的应用。

24-2-1 使用dumps( )将Python数据转成json格式

在json模块内有dumps( ),可以将Python数据转成json字符串格式,下列是转化对照表。
在这里插入图片描述

程序实例ch24_1.py:将Python的列表与元组数据转成json的数组数据的实例。

# ch24_1.py
import json

listNumbers = [5, 10, 20, 1]            # 列表数据
tupleNumbers = (1, 5, 10, 9)            # 元组资料
jsonData1 = json.dumps(listNumbers)     # 将列表数据转成json数据
jsonData2 = json.dumps(tupleNumbers)    # 将列表数据转成json数据
print("列表转换成json的数组", jsonData1)
print("元组转换成json的数组", jsonData2)
print("json数组在Python的数据类型 ", type(jsonData1))

执行结果

列表转换成json的数组 [5, 10, 20, 1]
元组转换成json的数组 [1, 5, 10, 9]
json数组在Python的数据类型  <class 'str'>

特别留意,上述笔者在第10行打印最终json在Python的数据类型,结果是以字符串方式存在。若以jsonData1为例,从上述执行结果我们可以了解,在Python内它的数据如下:

 ‘[5, 10, 20, 1]'

程序实例ch24_2.py:将Python由字典元素所组成的列表转成json数组,转换后原先字典元素变为json的对象。

# ch24_2.py
import json

listObj = [{
   
   'Name':'Peter', 'Age':25, 'Gender':'M'}]    # 列表数据元素是字典
jsonData = json.dumps(listObj)                          # 将列表数据转成json数据
print("列表转换成json的数组", jsonData)
print("json数组在Python的数据类型 ", type(jsonData))

执行结果

列表转换成json的数组 [{
   
   "Name"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值