[ 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‘:‘18‘, ‘grade‘ : ‘90‘}
>>> json_data = json.dumps(student_dic)
>>> type(json_data)
<class ‘str‘>
>>> print(json_data)
{"name": "ACME", "age": "18", "grade": "90"}

2、将JSON字符串转换为Python字典。说明:字符串必须放在双引号中,否则会报错。

>>> tran_data = json.loads(json_data)
>>> type(tran_data)
<class ‘dict‘>
>>> print(tran_data)
{‘name‘: ‘ACME‘, ‘age‘: ‘18‘, ‘grade‘: ‘90‘}

3、将Python字典类型数据写入json文件中

>>> import json
>>> student_dic = {‘name‘:‘ACME‘, ‘age‘:‘18‘, ‘grade‘ : ‘90‘}
>>> with open(‘json.txt‘,‘w‘) as f:
...   json.dump(student_dic,f)
...
>>>

查看json.txt文件内容,如下:

d:\pycharm>type json.txt
{"name": "ACME", "age": "18", "grade": "90"}

说明: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‘: ‘18‘, ‘grade‘: ‘90‘}

5、将Python字典类型转换为JSON字符串,并以指定格式输出。

>>> import json
>>> student_dic = {‘name‘:‘ACME‘, ‘age‘:‘18‘, ‘grade‘ : ‘90‘}
>>> json_data = json.dumps(student_dic,indent=4)
>>> print(json_data)
{
    "name": "ACME",
    "age": "18",
    "grade": "90"
}

6、将Python字典类型转换为JSON字符串,并按键排序输出。

>>> json_data = json.dumps(student_dic,sort_keys=True,indent=4)
>>> print(json_data)
{
    "age": "18",
    "grade": "90",
    "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

原文地址:https://www.cnblogs.com/linyfeng/p/12244596.html

时间: 2024-12-11 02:29:07

[ Python入门教程 ] Python中JSON模块基本使用方法的相关文章

[ PyQt入门教程 ] PyQt5中多线程模块QThread使用方法

本文主要讲解使用多线程模块QThread解决PyQt界面程序唉执行耗时操作时,程序卡顿出现的无响应以及界面输出无法实时显示的问题.用户使用工具过程中出现这些问题时会误以为程序出错,从而把程序关闭.这样,导致工具的用户使用体验不好.下面我们通过模拟上述出现的问题并讲述使用多线程QThread模块解决此类问题的方法. PyQt程序卡顿和无法实时显示问题现象 使用PyQt界面程序,点击运行按钮后,程序在显示框中每秒打印1个数字.程序代码如下: # -*- coding: utf-8 -*- impor

boost.python入门教程 ----python 嵌入c++

boost.python 中 python 嵌入c++ 部分,网上找到的中文资料似乎都有些过时了, 如 boost.python学习笔记 http://edyfox.codecarver.org/html/boost_python.html 在boost.python版本2中,提供更加简洁易用的接口,我们可以使用从而 代替原始的PyRun_SimpleString等等python c 转换api. 关于python与C++混合编程,事实上有两个部分 extending   所谓python 程序

[ Python入门教程 ] Python字典数据类型及基本操作

字典是Python中重要的数据类型,字典是由"键-值"对组成的集合,"键-值"对之间用逗号隔开,包含在一对花括号中.字典中的"值"通过"键"来引用. 创建字典 创建字典的格式如下: dictionary = {key1:value1, key2:value2, ...} 创建实例如下: dict = {} #空字典 dict1 = {'Lesson1': 'Python', 'Lesson2': 'Java', 'Lesson

[ Python入门教程 ] Python中日志记录模块logging使用实例

python中的logging模块用于记录日志.用户可以根据程序实现需要自定义日志输出位置.日志级别以及日志格式. 将日志内容输出到屏幕 一个最简单的logging模块使用样例,直接打印显示日志内容到屏幕. import logging logging.critical("critical log") logging.error("error log") logging.warning("warning log") logging.info(&q

[ Python入门教程 ] Python生成随机数模块(random)使用方法

1.生成指定范围内的随机整数 >>> random.randint(0,100) 28 >>> random.randint(0,100) 36 >>> random.randint(0,100) 71 2.指定序列中随机选1个元素 >>> random.choice(range(1,100)) 10 >>> random.choice(range(1,100)) 36 >>> random.cho

Python 入门教程

Python 入门教程 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年. 像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议. 执行Python程序 对于大多数程序语言,第一个入门编程代码便是"Hello World!",以下代码为使用Python输出"Hello World!"

Python入门教程--测试局域网中的电脑是否连通

假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200. 思路:用shell编程.(Linux通常是bash而Windows是批处理脚本).例如,在Windows上用ping ip 的命令依次测试各个机器并得到控制台输出.由于ping通的时候控制台文本通常是"Reply from ... " 而不通的时候文本是"time out ... " ,所以,在结果中进行字符串查找,即可知道该机器是否

python学习第四十八天json模块与pickle模块差异

在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点  跨语言,体积小 缺点 只能支持 int str list tuple dict pickle 的优点和缺点 优点 专门为python设计,支持python所有的数据类型 缺点 只能python使用,存储数据占空间大 文章来自 www.96net.com.cn 原文地址:https://www.cnblogs.com/96net/p/97806

2018-06-20 中文代码示例视频演示Python入门教程第三章 简介Python

知乎原链 Python 3.6.5官方入门教程中示例代码汉化后演示 对应在线文档: 3. An Informal Introduction to Python 不知如何合集, 请指教. 中文代码示例Python入门教程 3.1.1_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 中文代码示例Python入门教程 3.1.2 第一部分_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 中文代码示例Python入门教程 3.1.2 第二部分_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili