python从入门到入魔第十二天——json标准库的使用

前两篇分享了文件的使用和一二维数据的处理的方法,上篇也分享了csv标准库来处理csv类二维数据处理方法,这次分享高维数据处理方法——采用json标准库的处理方法。
首先要清楚JSON(JavaScript Object Notation)格式类型文件的高维数据是什么样子!!

"文章简介":
[
	{"标签":"python",
	 "类型":"原创"}
	 {"内容":"json库"
	 }
			
]

可以看出是由一个个键值对集合组成的数组
同类的还有XML格式类型文件!!

<文章简介>
	<标签>python</标签><类型>原创</类型>
	<内容>json库</内容>
</文章简介>

什么是json库?

json库的简介

json库是用来处理JSON格式类型文件的标准库。
JSON的要求:

	1.数据在名称/值对中,键值对都在双引号中,值可以是(字符串, 数字, 对象, 数组, 布尔值或 null)
	2.数据由逗号分隔
	3.大括号 {} 保存对象
	4.中括号 [] 保存数组,数组可以包含多个对象

json库的使用

json库主要包含两类函数:操作类函数和解析类函数
操作类函数:主要完成外部JSON格式类型文件与程序内部数据类型之间的住转换

解析类函数:主要解析键值对的内容,JSON格式中的对象别解析为字典,数组被解析为列表

json库操作额两个过程以及对应的操作类函数:编码(encoding)、解码(decoding)
引入标准库:import json

编码(encoding):将python类型的数据转换为JSON类型的数据

josn.dumps(obj,sort_keys=False,indent=None)
josn.dump(obj,fp,sort_keys=False,indent=None)
obj:是python数据中的列表或者字典类型
sort_keys:可以按照key排序
indent:用于增加数据缩进,增加可读性
fp:编码保存到fp文件中

import json
date = {'d':'4','a':'1','c':'3','b':'2'}
fp = open("D:/日常文件/0001.json",'w')
print(json.dumps(date))
print(json.dumps(date,sort_keys=True,indent=4))
json.dump(date,fp,sort_keys=True,indent=4) #输出结果为文件类型
fp.close()
输出结果:
{"d": "4", "a": "1", "c": "3", "b": "2"}
{
    "a": "1",
    "b": "2",
    "c": "3",
    "d": "4"
}

输出结果

解码(decoding):将JSON类型额数据解析为python类型的数据

json.loads(string)
json.load(fp)  #从文件中读入数据

import json
date = {'d':'4','a':'1','c':'3','b':'2'}
fr = open("D:/日常文件/0001.json",'r')
date1 = json.dumps(date,sort_keys=True,indent=4)
print("编码后的是数据:{}".format(date1))
print("直接解析的结果:{}".format(json.loads(date1)))
print("从文件读入的数据解析的结果:{}".format(json.load(fr)))
fr.close()
输出结果:
编码后的是数据:{
    "a": "1",
    "b": "2",
    "c": "3",
    "d": "4"
}
直接解析的结果:{'a': '1', 'b': '2', 'c': '3', 'd': '4'}
从文件读入的数据解析的结果:{'a': '1', 'b': '2', 'c': '3', 'd': '4'}

由于JSON类型数据是由一个个键值对集合组成的数组*,因此对JSON类型数据的处理可以采用对列表,字典类型处理函数进行处理!

>>> json = {
"name":"购物网站",
"num":3,
"sites":[ "京东", "淘宝", "拼多多" ]
}
>>> json["name"]
'购物网站'
>>> json["num"]
3
>>> json["sites"]
['京东', '淘宝', '拼多多']
>>> json["sites"][0]
'京东'
>>> for i in json["sites"]:
	print(i)

	
京东
淘宝
拼多多

与服务器交换数据的函数会吗??
json.parse()函数:

json.parse()函数:
	通常用于与服务端交换数据。
    在接收服务器数据时一般是字符串。
    
使用 json.parse() 方法将数据转换为 JavaScript 对象。

语法
json.parse(text[, reviver])
参数说明:
text:必需, 一个有效的 JSON 字符串。
reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数

json.stringify()函数:

由于在向服务器发送数据时一般是字符串。
可以使用 json.stringify() 方法将 JavaScript 对象转换为字符串。

语法
json.stringify(value[, replacer[, space]])
参数说明:

value:
必需, 要转换的 JavaScript 值(通常为对象或数组)。

replacer:
可选。用于转换结果的函数或数组。

如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。

如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。

space:
可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如何学会学习?

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值