热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用json模块,使json数据格式与Python字典dict数据格式互相转换,获取数据更加方便

一、定义JSON是一种数据格式使用javaScript(Java死鬼破特)

一、定义


  • JSON 是一种数据格式


  • 使用 Javascript (Java 死鬼破特)对象表示法


二、特点

1、JSON 与 XML格式数据的区别

  使用 json 模块,使json数据格式与Python字典dict数据格式互相转换,获取数据更加方便 - 文章图片

 ======


  • 两种格式的数据,都是跨语言,跨平台

  • c、c++、java、php、python、go 等都能处理这两种格式

  • Windows、Linux、Unix都能承载这两种格式

  • json 更为清晰,冗余更少,更轻量级,传输效率更高

  • xml 常常导致复杂的代码,极低的开发效率

  • 对于大多数 web 应用来说,根本不需要复杂的 xml 来传输数据

2、json 结构


  • 对象结构:键值对

    • json 格式的数据,在 python 中是以字符串或者字节类来呈现

    • json 格式数据,所有的 key 都是用“双引号”来包裹的

    • “单引号”是不可以的

    • value 数字可以不用双引号包裹

    • 空值一定是 小写的 null



a = {
"key1": 12,
"key2": "value"
}


  • 数组结构-嵌套字典的列表

b = [
{
"key1": "value1",
"key2": "value2"
},
{
"key3": "value3",
"key4": "value4"
},
]

3、注意事项


  • json 格式的数据,在 python 中以字符串形式呈现

  • json 中的空为 null

  • json 中除空和数字外,所有的 key 和 value 都是字符串,且一定要以双引号括起来

三、json数据格式与Python字典互相转换 ------ 为了获取数据方便


  • loads()和load():

    • loads() 是直接读取json格式的数据,并转换为字典型数据类型

    • load() 是读取json文件,将从json文件对象中获取的json数据转换为字典型数据类型



  • dumps()和dump():

    • dumps() 是将字典型数据类型直接转换为json数据格式

    • dump() 是将字典型数据类型转换为json数据格式后存放到json格式文件中



json.loads :(篓子)-- 将 json 格式的数据转化为-----Python中的字典类型

import json

# json格式的字符串 -- 字符串要写在同一行,外层使用单引号
data_json = '{"msg": "登录成功", "code": "10001", "data": null, "status": 1}'
# 将 json 格式的数据转化为 Python 中的字典类型
# 会将 json 格式空值null转化为 Python 中字典类型的空值 None
data_dict = json.loads(data_json, encoding='utf-8')
print(data_dict)
# 结果:
{'msg': '登录成功', 'code': '10001', 'data': None, 'status': 1}

json中的.dumps   : (当慕斯)Python中字典dict类型转化为-------json格式的数据

# 将python中字典类型转化为json格式的数据
# 会将 Python 中字典类型的空值 None 转换为 json 格式的空值 null
one_dict = {'name': '麦穗', "age": 18, "money": None}
# 记忆:宕机 --> dj(dict -- json)
# ensure_ascii=True 默认为 True 遇到中文进行编码,False 不进行编码
one_json = json.dumps(one_dict, ensure_ascii=False)
print(one_json)
# 结果:{"name": "麦穗", "age": 18, "money": null}

load() :(楼的)读取json文件中的json数据并转换为字典型的数据类型

import json
# 创建json格式的TXT文件,
# 内容为:{"msg": "登录成功", "code": "10001", "data": null, "status": 1}
# 第一种情况,读取json文件中的json数据并转换为字典型的数据类型
# mode 默认为="r",encoding 指定编码
with open("json_text.txt", encoding="utf-8") as file:
one_dict = json.load(file)
print(one_dict)
# 结果:{'msg': '登录成功', 'code': '10001', 'data': None, 'status': 1}

dump() :(当泼)将字典数据类型转换为json格式数据并存储到json格式的文件中

# 第二种,将字典数据类型转换为 json 格式数据并存储到json格式的文件中
two_dict = [{"one": {"name": "流年", "age": 20, "love": None}},
{"two": {"name": "阿登", "age": 25, "love": True}}]
# 使用上下文管理器 with
# ensure_ascii(恩数额儿_安斯k) 默认True,会进行编码;为如果是中文不进行编码使用 False
# indent (in den 特) 空两格美化
with open("write_json.txt", mode="w", encoding="utf-8") as one_file:
json.dump(two_dict, one_file, ensure_ascii=False, indent=2)
# 结果:
[
{
"one": {
"name": "流年",
"age": 20,
"love": null
}
},
{
"two": {
"name": "阿登",
"age": 25,
"love": true
}
}
]

 

 

 

 

 

 

 

 

 

*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/   谢谢!!******* 


推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
author-avatar
手机用户2502937333
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有