[ Python入门教程 ] Python中JSON模块基本使用方法
JSON (JavaScript Object Notation)是一种使用广泛的轻量数据格式,Python标准库中的json模块提供了一种简单的方法来编码和解码JSON格式的数据。用于完成字符串和python数据类型间进行转换。
json模块基本函数
json.dumps():把Python数据类型转换成JSON字符串
json.loads():把JSON字符串转换成Python数据类型
json.dump():把Python数据类型转换成JSON字符串并存储在文件中
json.load():把文件打开并将JSON字符串转换成Python数据类型
说明:使用 JSON 函数需要导入 json 库:import json
json模块使用实例
1、将python中的字典转换为JSON字符串。说明:转换后的JSON字符串都是放在双引号中。
>>> import json
>>> student_dic = {'name':'ACME', 'age':'', 'grade' : ''}
>>> json_data = json.dumps(student_dic)
>>> type(json_data)
<class 'str'>
>>> print(json_data)
{"name": "ACME", "age": "", "grade": ""}
2、将JSON字符串转换为Python字典。说明:字符串必须放在双引号中,否则会报错。
>>> tran_data = json.loads(json_data)
>>> type(tran_data)
<class 'dict'>
>>> print(tran_data)
{'name': 'ACME', 'age': '', 'grade': ''}
3、将Python字典类型数据写入json文件中
>>> import json
>>> student_dic = {'name':'ACME', 'age':'', 'grade' : ''}
>>> with open('json.txt','w') as f:
... json.dump(student_dic,f)
...
>>>
查看json.txt文件内容,如下:
d:\pycharm>type json.txt
{"name": "ACME", "age": "", "grade": ""}
说明:type为dos命令,作用是查看文件内容。
4、读取JSON文件,并把字符串变换为Python数据字典
>>> with open('json.txt','r') as fr:
... student_dict = json.load(fr)
...
>>> type(student_dict)
<class 'dict'>
>>> print(student_dict)
{'name': 'ACME', 'age': '', 'grade': ''}
5、将Python字典类型转换为JSON字符串,并以指定格式输出。
>>> import json
>>> student_dic = {'name':'ACME', 'age':'', 'grade' : ''}
>>> json_data = json.dumps(student_dic,indent=4)
>>> print(json_data)
{
"name": "ACME",
"age": "",
"grade": ""
}
6、将Python字典类型转换为JSON字符串,并按键排序输出。
>>> json_data = json.dumps(student_dic,sort_keys=True,indent=4)
>>> print(json_data)
{
"age": "",
"grade": "",
"name": "ACME"
}
7、Python基本类型转换为JSON字符串的特殊变化。
>>> spec_value_dict = {'a':True,'b':False,'c':None}
>>> json_data = json.dumps(spec_value_dict,indent=4)
>>> print(json_data)
{
"a": true,
"b": false,
"c": null
}
>>>
说明:Python中的True转换为true,False转化为false,None转换为null。使用loads将JSON类型转换后还原,如下:
>>> json.loads(json_data)
{'a': True, 'b': False, 'c': None}
小结
本文仅是描述了Python基本类型与JSON字符串间转换的基本使用方法。对于JSON编解码更多功能使用可以阅读官方文档获取:https://docs.python.org/3/library/json.html
[ Python入门教程 ] Python中JSON模块基本使用方法的更多相关文章
- [ PyQt入门教程 ] PyQt5中多线程模块QThread使用方法
本文主要讲解使用多线程模块QThread解决PyQt界面程序唉执行耗时操作时,程序卡顿出现的无响应以及界面输出无法实时显示的问题.用户使用工具过程中出现这些问题时会误以为程序出错,从而把程序关闭.这样 ...
- [ Python入门教程 ] Python中日期时间datetime模块使用实例
Python中datetime模块提供强大易用的日期处理功能,用于记录程序操作或修改时间.时间计算.日志时间显示等功能.datatime模块重新封装了time模块,提供的类包括date.time.da ...
- boost.python入门教程 ----python 嵌入c++
Python语言简介 Python是一种脚本语言.以开放的开发接口和独特的语法著称.尽管Python在国内引起注意只有几年的时间,但实际上Python出现于上世纪90年代(据www.python.or ...
- [ Python入门教程 ] Python字典数据类型及基本操作
字典是Python中重要的数据类型,字典是由"键-值"对组成的集合,"键-值"对之间用逗号隔开,包含在一对花括号中.字典中的"值"通过&qu ...
- [ Python入门教程 ] Python中日志记录模块logging使用实例
python中的logging模块用于记录日志.用户可以根据程序实现需要自定义日志输出位置.日志级别以及日志格式. 将日志内容输出到屏幕 一个最简单的logging模块使用样例,直接打印显示日志内容到 ...
- [ Python入门教程 ] Python文件基本操作_shutil模块
shutil模块是对os模块中文件操作的补充,提供文件和目录的移动.复制.打包.压缩.解压等功能 shutil常用函数 shutil.copyfile(src, dst) 复制文件, 如果ds ...
- [ Python入门教程 ] Python生成随机数模块(random)使用方法
1.使用randint(a,b)生成指定范围内的随机整数.randint(a,b)表示从序列range([a,b])中获取一个随机数,包括b. >>> random.randint( ...
- [ Python入门教程 ] Python基础语法
Python的语法非常简练,因此用Python编写的程序可读性强.容易理解.本章将介绍Python的基本语法和概念. Python文件类型 1.源代码.Python的源代码的扩展名以py结尾,可直接运 ...
- [ Python入门教程 ] Python的控制语句
Python控制语句由条件语句.循环语句构成.控制语句根据条件表达式控制程序的流转.本章将介绍Python中控制语句的基本语法. 条件判断语句 (1)if条件语句 if语句用于检测某个条件是否成立.如 ...
随机推荐
- 计算机网络OSI模型
一. 理想模型-OSI 7层模型 那么数据是如何传输的呢?看下图:上层的Header+DATA作为新的Data再次被封装,到达目的地后就像剥洋葱一样掐头(去尾)最终留下你所要传的数据. 各层功能详细阐 ...
- background新增属性
今天解除了几个曾经没有用到的属性,所以想总结并且复习一下. background-origin属性:有三个属性值,分别是border-box,padding-box,content-box.看到bor ...
- vue项目创建步骤 和 路由router知识点
菜单快捷导航: vue项目创建 vue路由router知识点(路径参数.查询参数.命名路由.嵌套路由.命名视图.hash/history模式) 1.创建一个vue项目步骤 (windows环境下).创 ...
- 【题解】CF1142B Lynyrd Skynyrd(倍增)
[题解]CF1142B Lynyrd Skynyrd(倍增) 调了一个小时原来是读入读反了.... 求子段是否存在一个排列的子序列的套路是把给定排列看做置换,然后让给定的序列乘上这个置换,问题就转化为 ...
- 图解leetcode279 —— 完全平方数
每道题附带动态示意图,提供java.python两种语言答案,力求提供leetcode最优解. 描述: 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 ...
- 用python做推荐系统(二)
一.简介 继上一篇基于用户的推荐算法,这一篇是要基于商品的,基于用户的好处是可以根据用户的评价记录找出跟他兴趣相似的用户,再推荐这些用户也喜欢的电影,但是万一这个用户是新用户呢?或是他还没有对任何电影 ...
- 【DDD】持久化领域对象的方法实践
[toc] 概述 在实践领域驱动设计(DDD)的过程中,我们会根据项目的所在领域以及需求情况捕获出一定数量的领域对象.设计得足够好的领域对象便于我们更加透彻的理解业务,方便系统后期的扩展和维护,不至于 ...
- Linux下Qt+CUDA调试并运行
Qt与CUDA相结合具体的操作主要修改qt项目中的配置文件pro.下面以测试的项目为例. 因为这是一个测试案例,代码很简单,下面将这几个文件的代码贴出来,方面后面对应pro文件和Makefile文件中 ...
- Flutter中Expanded组件用法
Flutter中Expanded组件用法 Expanded组件可以使Row.Column.Flex等子组件在其主轴方向上展开并填充可用空间(例如,Row在水平方向,Column在垂直方向).如果多个子 ...
- 在Windows Server 2003中搭建DNS服务器
1.安装Windows Server 2003虚拟机 准备好Windows Server 2003的镜像:http://www.downza.cn/soft/184944.html 2.Windows ...