详解Python中的JSON以及在Python中使用JSON
首先什么是JSON?
JSON(JavaScript Object Notation, JS 对象简谱,即JavaScript对象表示法) 是一种用于表示结构化数据的流行数据格式。 在服务器和web应用程序之间以JSON格式传输和接收数据是很常见的。
在Python中,JSON以字符串的形式存在(即JSON字符串),例如:
json_str = '{"name":"zhangsan","languages":["Python","Java"]}'
在文件中存储JSON对象也是很常见的
引入json模块
要使用JSON(字符串或包含JSON对象的文件),你可以使用Python的json模块。在使用该模块之前,需要先引入它。
import json
Python中解析JSON
使用json模块解析JSON字符串和包含JSON对象的文件是很容易的。
例1: 在Python中将JSON解析成dict
使用json.loads()方法来解析JSON字符串。该方法返回一个字典。
import jsonperson = '{"name":"zhangsan","languages":["Python","Java"]}' person_dict = json.loads(person) print(person_dict) print(type(person_dict)) print(person_dict["languages"])
打印结果, 可以看到,person 是一个JSON 字符串, person_dict 是一个字典。
{'name': 'zhangsan', 'languages': ['Python', 'Java']} <class 'dict'> ['Python', 'Java']
例2 : 使用Python读取JSON文件
使用json.load()方法读取一个包含JSON对象的文件。
当前文件下有一个person.json,它包含一个JSON对象。
# person.json {"name":"lisi","languages":["English","Fench"] }
然后来解析这个person.json的json文件
import jsonwith open('person.json') as f:data = json.load(f)print(data) print(type(data))
使用open()函数读取json文件。然后,使用json.load()方法解析文件,该方法会返回一个字典
{'name': 'lisi', 'languages': ['English', 'Fench']} <class 'dict'>
使用Python将字段转换为JSON字符串
可以使用 json.dumps()方法将字典转换成JSON字符串。
例3:将字典转换为JSON
import jsonperson_dict = {"name":"xiaowang","age":21,"sex":None } person_json = json.dumps(person_dict) print(person_json) print(type(person_json))
结果:
{"name": "xiaowang", "age": 21, "sex": null} <class 'str'>
Python对象及其与JSON的等效转换
将JSON写入一个文件
在Python中将JSON写入文件,我们可以使用json.dump()方法
例4:将JSON写入一个文件
import jsonperson_dict = {"name": "Bob","languages": ["English", "Fench"],"married": True,"age": 36 } with open("person.txt","w") as json_file:json.dump(person_dict,json_file)
然后就可以看见在当前的文件下有一个person.txt的文件,打开文件,就会看见保存的json数据
为了分析和调试JSON数据,我们可以通过向json.dumps()和json.dump()方法传递额外的参数indent和sort_keys来实现。
例5: 使用Python完美输出JSON
import jsonperson_string = '{"name": "Bob", "languages": ["English", "Fench"], "married": true, "age": 36}'# 将json字符串转化为字典 person_dict = json.loads(person_string)# 完美输出JSON print(json.dumps(person_dict,indent=4,sort_keys=True))
参数介绍: indent=4 ,使用了4个空格进行缩进,并且,键值是按升序排序的
indent的默认值是None, sort_keys的默认值为False。
运行之后的结果:
详解Python中的JSON以及在Python中使用JSON相关推荐
- 定义一个没有参数的函数、输出python3次_Python函数参数详解,三天让你掌握python,不再是小白
原标题:Python函数参数详解,三天让你掌握python,不再是小白 引言 随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组织结构不清晰,可读性变差 ...
- python评价指标_详解分类评价指标和回归评价指标以及Python代码实现
这篇文章介绍的内容是详解分类评价指标和回归评价指标以及Python代码实现,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下. 1.概念 性能度量(评价)指标,主分为两大类: 1)分类评价 ...
- PullScrollView详解(六)——延伸拓展(listview中getScrollY()一直等于0、ScrollView中的overScrollBy)
前言:经常说follow your heart.但等到真到这么一天的时候,却很艰难 相关文章: 1.<PullScrollView详解(一)--自定义控件属性> 2.<PullScr ...
- Tensorflow 2.x(keras)源码详解之第十二章:keras中的损失函数之BinaryCrossentropy详解
大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...
- 详解安卓应用性能测试方法以及Android SDK中辅助测试的工具使用
Android前端APP的性能测试一般针对以下几个方面:应用启动时间:CPU的占用:内存的占用:流量的耗用:电量的耗用:流畅度等.一般对App进行性能测试都需要借助不同的工具完成,本章节会向读者重点介 ...
- 一看就懂系列之 详解redis的bitmap在亿级项目中的应用
前言 这是一篇拖了很久的总结,项目中引入了redis的bitmap的用法,感觉挺高大上的,刨根问底,故留下总结一篇当作纪念. 说清楚几个问题: 1.bitmap的原理.用法. 2.bitmap的优势. ...
- python tkinter库函数详解_Python使用tkinter库进行GUI编程中常用事件处理方式汇总
在Python GUI编程中,控件响应事件处理是常用的操作.tkinter库中事件类型有哪些?事件绑定方式有几种?如何编写事件处理函数?这些都是必须要面对的问题.今天,我们对上述内容进行简要汇总. 事 ...
- 100行的python作品详解_漫画喵的100行Python代码逆袭
小喵的唠叨话:这次的博客,讲的是使用python编写一个爬虫工具.为什么要写这个爬虫呢?原因是小喵在看完<极黑的布伦希尔特>这个动画之后,又想看看漫画,结果发现各大APP都没有资源,最终好 ...
- python ssl模块用法详解_一看就懂,Python 日志模块详解及应用!
日志概述 百度百科的日志概述: Windows网络操作系统都设计有各种各样的日志文件,如应用程序日志,安全日志.系统日志.Scheduler服务日志.FTP日志.WWW日志.DNS服务器日志等等,这些 ...
- python学习详解_Python学习入门到精通:Python列表讲解
列表导读 从列表开始,我们将陆续学习元组,集合,字典这4中容器类型数据.容器类型数据,只是望文生义,你大概能够猜测出这4种数据类型的作用,他们如同容器一样,可以存储int,float,bool,str ...
最新文章
- 【Linux实用技术】LFS6.3构建实录
- android发送json格式,Android---创建Json格式数据
- 并发测试mysql_实践100个线程:一次MySQL数据并发问题
- python isnumber_Python正课18 —— 基本数据类型 - 字符串类型
- matlab 信息融合,MSDF,matlab,多传感器信息融合
- 多线程的那点儿事(之无锁队列)
- MySQL高级知识(四)——Explain
- Android、netassist进行UDP通信
- EPLAN教程——导出CAD如何快捷配置
- 感性负载,容性负载,阻性负载
- Could not autowire. No beans of 'Iface' type found. less... (Ctrl+F1) Inspection info:Checks autowi
- 基于STM32的0.96寸OLED显示屏显示数据
- 一款自制calendar插件
- 努比亚计科学计算机,最后6天倒计时 努比亚为您揭晓未来科技
- python前端学习之js
- windows10 录音机内录、外录、内外混合录的方法
- 清新小学生文明礼仪PPT模板
- Linux | Ubuntu | 查看路由 | 修改路由
- MATLAB曲线绘制
- The security strength of SHA-1 digest algorithm is not sufficient for this key size
热门文章
- python标准库time_Python3标准库:time时钟时间
- python websocet回调_python – 线程,非阻塞websocket客户端
- 如何快速掌握一门新技术/语言/框架…
- 基础网络爬虫(Web crawler)相关技术浅析
- PyCharm——运行错误【Process finished with exit code -1073741819 (0xC0000005)】解决方案之一
- Spring——Spring工具类
- Easy h-index
- shiro的登录 subject.login(token)中执行逻辑和流程
- Maven-学习笔记03【基础-Maven标准目录结构和常用命令】
- 一个文件,内含一千万行字符串,每个字符串在1K以内,要求找出所有相反的串对