首先什么是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相关推荐

  1. 定义一个没有参数的函数、输出python3次_Python函数参数详解,三天让你掌握python,不再是小白

    原标题:Python函数参数详解,三天让你掌握python,不再是小白 引言 随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组织结构不清晰,可读性变差 ...

  2. python评价指标_详解分类评价指标和回归评价指标以及Python代码实现

    这篇文章介绍的内容是详解分类评价指标和回归评价指标以及Python代码实现,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下. 1.概念 性能度量(评价)指标,主分为两大类: 1)分类评价 ...

  3. PullScrollView详解(六)——延伸拓展(listview中getScrollY()一直等于0、ScrollView中的overScrollBy)

    前言:经常说follow your heart.但等到真到这么一天的时候,却很艰难 相关文章: 1.<PullScrollView详解(一)--自定义控件属性> 2.<PullScr ...

  4. Tensorflow 2.x(keras)源码详解之第十二章:keras中的损失函数之BinaryCrossentropy详解

      大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...

  5. 详解安卓应用性能测试方法以及Android SDK中辅助测试的工具使用

    Android前端APP的性能测试一般针对以下几个方面:应用启动时间:CPU的占用:内存的占用:流量的耗用:电量的耗用:流畅度等.一般对App进行性能测试都需要借助不同的工具完成,本章节会向读者重点介 ...

  6. 一看就懂系列之 详解redis的bitmap在亿级项目中的应用

    前言 这是一篇拖了很久的总结,项目中引入了redis的bitmap的用法,感觉挺高大上的,刨根问底,故留下总结一篇当作纪念. 说清楚几个问题: 1.bitmap的原理.用法. 2.bitmap的优势. ...

  7. python tkinter库函数详解_Python使用tkinter库进行GUI编程中常用事件处理方式汇总

    在Python GUI编程中,控件响应事件处理是常用的操作.tkinter库中事件类型有哪些?事件绑定方式有几种?如何编写事件处理函数?这些都是必须要面对的问题.今天,我们对上述内容进行简要汇总. 事 ...

  8. 100行的python作品详解_漫画喵的100行Python代码逆袭

    小喵的唠叨话:这次的博客,讲的是使用python编写一个爬虫工具.为什么要写这个爬虫呢?原因是小喵在看完<极黑的布伦希尔特>这个动画之后,又想看看漫画,结果发现各大APP都没有资源,最终好 ...

  9. python ssl模块用法详解_一看就懂,Python 日志模块详解及应用!

    日志概述 百度百科的日志概述: Windows网络操作系统都设计有各种各样的日志文件,如应用程序日志,安全日志.系统日志.Scheduler服务日志.FTP日志.WWW日志.DNS服务器日志等等,这些 ...

  10. python学习详解_Python学习入门到精通:Python列表讲解

    列表导读 从列表开始,我们将陆续学习元组,集合,字典这4中容器类型数据.容器类型数据,只是望文生义,你大概能够猜测出这4种数据类型的作用,他们如同容器一样,可以存储int,float,bool,str ...

最新文章

  1. 【Linux实用技术】LFS6.3构建实录
  2. android发送json格式,Android---创建Json格式数据
  3. 并发测试mysql_实践100个线程:一次MySQL数据并发问题
  4. python isnumber_Python正课18 —— 基本数据类型 - 字符串类型
  5. matlab 信息融合,MSDF,matlab,多传感器信息融合
  6. 多线程的那点儿事(之无锁队列)
  7. MySQL高级知识(四)——Explain
  8. Android、netassist进行UDP通信
  9. EPLAN教程——导出CAD如何快捷配置
  10. 感性负载,容性负载,阻性负载
  11. Could not autowire. No beans of 'Iface' type found. less... (Ctrl+F1) Inspection info:Checks autowi
  12. 基于STM32的0.96寸OLED显示屏显示数据
  13. 一款自制calendar插件
  14. 努比亚计科学计算机,最后6天倒计时 努比亚为您揭晓未来科技
  15. python前端学习之js
  16. windows10 录音机内录、外录、内外混合录的方法
  17. 清新小学生文明礼仪PPT模板
  18. Linux | Ubuntu | 查看路由 | 修改路由
  19. MATLAB曲线绘制
  20. The security strength of SHA-1 digest algorithm is not sufficient for this key size

热门文章

  1. python标准库time_Python3标准库:time时钟时间
  2. python websocet回调_python – 线程,非阻塞websocket客户端
  3. 如何快速掌握一门新技术/语言/框架…
  4. 基础网络爬虫(Web crawler)相关技术浅析
  5. PyCharm——运行错误【Process finished with exit code -1073741819 (0xC0000005)】解决方案之一
  6. Spring——Spring工具类
  7. Easy h-index
  8. shiro的登录 subject.login(token)中执行逻辑和流程
  9. Maven-学习笔记03【基础-Maven标准目录结构和常用命令】
  10. 一个文件,内含一千万行字符串,每个字符串在1K以内,要求找出所有相反的串对