大家好,又见面了,我是你们的朋友全栈君。
如果点进来的刚巧是个高手,那……你就当是过来做个鉴定的吧。很多从事数据分析工作的伙伴都是从“最简单”的神器—Excel开始入门的,对编程语言、计算机世界的很多工具都不甚了解。要做结构化的数据,就赶紧跑去自学sql,学习sql server或是mysql数据库。要做半结构化、非结构化的数据又得去学习诸如mongo数据库的东西。 天天听对面的程序员小哥说我给你个打包个json吧,这个会用吗?阿,json是个啥?管不了这么多了,暗暗想,既然你能打个包,我就能把这包给拆了……不敢说,说出来就成了程序员鼓励师了,笑死对面的程序员欧巴了。言归正传。
1. 初识JSON
这是个json,存储的数据描述了一个人John Smith的一些个人信息,比如姓名,是否活着,年龄,地址以及电话号码等信息。其中,地址address和电话号码phoneNumbers呢,下面又包含了州、城市、街道,家庭电话、办公电话以及手机号码等信息。
如果之前只接触过存储在Excel或者sql server等结构化数据库中的结构化数据,那么第一次看到json格式的数据,一定觉得很新颖。先感性认识一下它,稍后来操作它。
这种数据组织方式,条理清晰,能更好的表示自然界中人或物等实体的属性关系。可以理解为一种树状结构,一棵有枝干,枝干上有叶子的树。
2. 操作JSON
打开Ipython,将以下代码敲进去,接下来的操作也是用此变量的值作为栗子。
你看了一眼,会说这我认识,不就是个字典吗?在Ipython中使用type()获得js变量的数据类型。
你说的没错儿,就是个dict类型。
2.1 写入json文件
2.2 读出json文件
读出的东西保存一下,看看是个什么数据类型。
可以看到我们写入json文件的是一个dict类型,读出后还是一个dict类型。这也就是json区别于csv文件的地方吧。csv文件呢,无论你写入的是什么类型的数据结构,读出的始终都是一串串字符。json文件呢,本质存储的也是字符串,区别于csv的是,通过json.load读出json,可以自动解析出数据的类型。
2.3 区分json.dump()与json.dumps()
json.dump()
使用时,需要指定需要写入的数据,以及一个写入流。如下代码实现的功能是把js的内容写入到桌面的一个test.json的文档中。执行代码后可以看到桌面上多了一个test.json文件。
json.dumps()
使用的方法比较简单,直接把需要写入的dict传递给这个函数。
3. 举一反三识别JSON
3.1 区分json与dict
会不会有时候突然犯迷糊,想json跟dict到底是什么关系,有什么区别呢?其实那是你不懂json和dict本身的概念。
json
本质是一种文件组织方式,比如你熟悉的txt, csv, doc,docx,xls,xlsx文件等等。
dict
是程序语言里定义的一种数据结构,比如列表list,比如集合set,比如字符串str,有比如数组array。
3.2 区分json与XML
XML和JSON都使用结构化方法来标记数据。
JSON 简单的语法格式和清晰的层次结构明显要比 XML 容易阅读,并且在数据交换方面,由于 JSON 所使用的字符要比 XML 少得多,可以大大得节约传输数据所占用得带宽
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128257.html原文链接:https://javaforall.cn