JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,遵循欧洲计算机协会制定的 JavaScript 规范(简称 ECMAScript)。JSON 易于人阅读和编写,同时也易于机器解析和生成,能够有效的提升网信息的传输效率,因此它常被作为网络、程序之间传递信息的标准语言,比如客户端与服务器之间信息交互就是以 JSON 格式传递的。
简单地说,JSON 可以将 JavaScript 对象表示的一组数据转换为字符串格式,以便于在网络、程序间传输这个字符串。并且在需要的时候,您还可以将它转换为编程语言所支持的数据格式。本节主要介绍如何实现 JSON 数据与 Python 数据类型间的相互转换。
Python 语言内置了专门处理 JOSN 数据的模块 —— jons 模块,通过该模块就可以完成 JSON 与 Python 两种数据格式的相互转换。
jons.loads()
该方法可以将 json 格式的字符串转换成 Python 对象(比如列表、字典、元组、整型以及浮点型),其中最常用的是转换为字典类型。示例如下:
-
coding:utf8
- import json
- #JOSN字符串
- website_info=‘{“name” : “c语言中文网”,“PV” : “50万”,“UV” : “20万”,“create_time” : “2010年”}’
- py_dict=json.loads(website_info)
- print(“python字典数据格式:%s;数据类型:%s”% (py_dict,type(py_dict)))
输出结果:
python字典数据格式:{‘name’: ‘c语言中文网’, ‘PV’: ‘50万’, ‘UV’: ‘20万’, ‘create_time’: ‘2010年’};数据类型:<class ‘dict’>
注意:上述示例中 JSON 字符串看上去和 Python 字典非常相似,但是其本质不同,JOSN 是字符串类型,而 Python 字典是 dict 类型。
json.dump()
它可以将 Python 对象(字典、列表等)转换为 json 字符串,并将转换后的数据写入到 json 格式的文件中 ,因此该方法必须操作文件流对象。比如当使用爬虫程序完成数据抓取后,有时需要将数据保存为 json 格式,此时就用到了 json.dump() 方法,语法格式如下:
**
json.dump(object,f,inden=0,ensure_ascii=False)
参数说明如下:
- object:Python 数据对象,比如字典,列表等
- f:文件流对象,即文件句柄。
- indent:格式化存储数据,使 JSON 字符串更易阅读。
- ensure_ascii:是否使用 ascii 编码,当数据中出现中文的时候,需要将其设置为 False。
示例示例如下:
- import json
- ditc_info={“name” : “c语言中文网”,“PV” : “50万”,“UV” : “20万”,“create_time” : “2010年”}
- with open(“web.josn”,“a”) as f:
- json.dump(ditc_info,f,ensure_ascii=False)
打开 web.json 文件,其内容如下所示:
**
{
"name": "c语言中文网",
"PV": "50万",
"UV": "20万",
"create_time": "2010年"
}
您也可以将 Python 列表转换成 JSON 字符串,并保存至 json 文件中,如下所示:
- import json
- item_list = []
- item = {‘website’: ‘C语言中文网’, ‘url’: “c.biancheng.net”}
- for k,v in item.items():
- item_list.append(v)
- with open(‘info_web.json’, ‘a’) as f:
- json.dump(item_list, f, ensure_ascii=False)
打开 info_web.json 文件,其内容如下:
**
["C语言中文网", "c.biancheng.net"]
json.load()
该方法用于操作文件流对象,不过它与 dump() 恰好相反,它表示从 json 文件中读取 JSON 字符串,并将读取内容转换为 Python 对象。使用示例如下:
- import json
- site = {‘name’:‘c语言中文网’,“url”:“c.biancheng.net”}
- filename = ‘website.json’
- with open (filename,‘w’) as f:
-
json.dump(site,f,ensure_ascii=False)
- with open (filename,‘r’) as f:
-
print(json.load(f))
输出结果如下:
**
{'name': 'c语言中文网', 'url': 'c.biancheng.net'}
json.dumps()
该方法可以将 Python 对象转换成 JSON 字符串。示例如下:
- import json
- #python字典
- item = {‘website’: ‘C语言中文网’, ‘rank’: 1}
-
json.dumps之后
- item = json.dumps(item,ensure_ascii=False)
- print(‘转换之后的数据类型为:’,type(item))
- print(item)
输出结果如下:
**
转换之后的数据类型为: <class 'str'>
{"website": "C语言中文网", "url": "c.biancheng.net"}
最后对上述方法做简单地总结,如下表所示:
方法 | 作用 |
---|---|
json.dumps() | 将 Python 对象转换成 JSON 字符串。 |
json.loads() | 将 JSON 字符串转换成 Python 对象。 |
json.dump() | 将 Python 中的对象转化成 JSON 字符串储存到文件中。 |
json.load() | 将文件中的 JSON 字符串转化成 Python 对象提取出来。 |
综上所述 json.load() 与 json.dump() 操作的是文件流对象,实现了 json 文件的读写操作,而 json.loads() 与 json.dumps() 操作的是 Python 对象或者 JOSN 字符串。
这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!
优快云大礼包:全网最全《全套Python学习资料》免费分享🎁
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
因篇幅有限,仅展示部分资料
2️⃣国内外Python书籍、文档
① 文档和书籍资料
3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
5️⃣Python兼职渠道
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓