当前位置:首页 > 技术文章 > 正文内容

干货 | 如何利用Python处理JSON格式的数据,建议收藏

zonemu2个月前 (07-18)技术文章25

作者: 俊欣

来源: 关于数据分析与可视化

JSON数据格式在我们的日常工作中经常会接触到,无论是做爬虫开发还是一般的数据分析处理,今天,小编就来分享一下当数据接口是JSON格式时,如何进行数据处理进行详细的介绍,内容分布如下

  • 什么是JSON
  • JSON模块的使用方法

什么是JSON

JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式,通常是以键值对的方式呈现,其简洁和清晰的层次结构使得JSON成为理想的数据交换语言,而在Python中处理JSON格式的模块有json和pickle两个

  • json模块和pickle都提供了四个方法:dumps, dump, loads, load
  • 序列化:将python的数据转换为json格式的字符串
  • 反序列化:将json格式的字符串转换成python的数据类型

序列化

首先我们来看一下序列化是如何操作的,我们首先用json.dump()将字典写入json格式的文件中

能够进行类似操作的则是dataframe当中的to_json()方法,比方说

而当你分别打开这两个文件时,里面的内容分别是以键值对呈现的json数据。另外,我们看到有json.dumps()和json.dump(), 两者看着十分的相似,但是在功能上可是大相径庭,json.dump()进行的是对json文件的读写操作,就比如上述的例子中,我们将字典数据写入json的文件中用的就是json.dump,而json.dumps()则是聚焦于数据本身类型的转换,对数据的操作,比如

反序列化

在反序列化的过程中,我们需要用到的则是json.load()和json.loads()方法,比如说

可以看到的是变量teachers的类型是字典类型,所以可以通过相应的方式来获取以及改变其中的数值以及格式,另外一种方法则是通过pandas模块中的read_json()方法,例如

从上述的例子中可以看出,json.load()主要处理的是json格式的文件,而json.loads()主要是对JSON编码的字符串进行数据类型的转换,

总结

本文主要是讲了序列化与反序列化的相关操作步骤,读者需要在其中留心的则是json.loads()与json.load(),以及json.dumps()和json.dump()之间的区别和使用场景,总的来说

  • json.loads():是将json格式的字符串(str)转换为字典类型(dict)的数据
  • json.dumps():返回来,是将字典类型(dict)的数据转换成json格式的字符串
  • json.load():用于读取json格式的文件,将文件中的数据转换为字典类型(dict)
  • json.dump():主要用于存入json格式的文件,将字典类型转换为json形式的字符串

相关文章

费用管理系统(BMS)(费用管理系统的好处)

随着物流仓储行业的快速发展,费用管理系统的应用愈发重要。BMS系统不仅简化了报价与结算流程,还降低了管理成本,提升了效率。本文深入探讨了海外仓BMS系统的功能与应用,展示了其在费用管理中的重要作用,为...

快速上手React(快速上手的高级表达)

web前端三大主流框架1、Angular大家眼里比较牛的框架,甚至有人说三大框架中只有它能称得上一个完整的框架,因为它包含的东西比较完善,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等...

GitLab-合并请求(gitlab合并请求合并者还原图解)

描述合并请求可用于在您对项目进行的其他人员之间交换代码,并轻松与他们讨论更改。合并请求的步骤步骤1-在创建新的合并请求之前,GitLab中应该有一个创建的分支。您可以参考本章来创建分支-步骤2-登录到...

K8s 的 Namespace 到底解决了什么问题?

在 Kubernetes 的世界里,资源调度、服务编排以及自动化运维构成了它强大的基础架构能力。但随着集群规模的扩大和团队协作复杂度的提升,仅靠原始的资源管理手段已经难以支撑多租户或大型项目的管理需求...

HTML5最新版本介绍(“html5”)

HTML5是HTML4.01和XHTML1.0之后超文本标记语言的最新版本,由一群自由思想者设计,最终实现了多媒体支持、交互性、更智能的表单和更好的语义标注。 HTML 5不只是 HTML规范的最新...

HTML5设计与制作哪家强?全省50多所高职院校齐聚中山比拼

3月22日下午,2018-2019年广东省职业院校学生专业技能大赛“HTML5交互融媒体内容设计与制作”赛项在中山火炬职业技术学院开幕。全省51所高职院校的52支参赛队伍参加此次大赛。参赛师生将于3月...