热门标签 | 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/   谢谢!!******* 


推荐阅读
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • Google排名优化-面向Google(Search Engine Friendly)的URL设计 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
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社区 版权所有