译者得话
在写爬虫程序的过程中,若网站的响应式JSON格式,我们则可以通过提取键值,来获取我们想要的内容。json格式的响应
JSON,全称为JavaScipt Oject Notation,构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。
实际上,任何支持得类型都可以通过JSON来表示,例如字符串、数字、对象、数组等,但是对象和数组是比较特殊且常用得两种类型。对象:在JavaScript是使用花括号{}包裹起来的内容,数据结构为{key1:value1,key2:value2,......,keyN:valueN}的键值对结构。在面向对象的语言中,key为对象的属性,value为对应的值。键名可以使用整数和字符串来表示。值得类型可以是任意类型。
数组:数组在JavaScript是方括号[]包裹起来得内容,数据结构为["java","javascript","vb",...]得索引结构。在JavaScript中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引用得多。同样,值的类型可以是任意类型。
一个标准的JSON对象如下:
{"medical": [
{ "room-number": 100,
"use": "reception",
"sq-ft": 50,
"price": 75
},
{ "room-number": 101,
"use": "waiting",
"sq-ft": 250,
"price": 75
},
{ "room-number": 102,
"use": "examination",
"sq-ft": 125,
"price": 150
},
{ "room-number": 103,
"use": "examination",
"sq-ft": 125,
"price": 150
},
{ "room-number": 104,
"use": "office",
"sq-ft": 150,
"price": 100
}
]
}
这里,[......]相当于列表类型,列表中的每一个元素可以是任意类型,这个示例中它是字典类型,由大括号包围。
而[......]由被一个大括号包围,即一个外字典。这样的写法应该很符合我们日常记录的方法。
这页说明JSON由以上两种形式自由组合而成,可以无限次嵌套,结构清晰,是数据交换的极佳方式。
JSON in Python
JSON可存储列表、布尔值、数字、元组、字典,但要把JSON写进文件,则以上的数据类型需被转换为字符串数据类型,因为只有字符串可被读取或者写进文件中。Python提供JSON模块,用来帮助使用者做数据类型转换。
import json
JSON模块主要用来将python的字典类型数据转换为JSON字符串类型,然后将数据写进文件中
JSON模块也可将JSON字符串转换为字典数据结构。
Writing a JSON 文件
使用Json.dumps函数可以直接将json字符串丢进文件中。
注意:此时只有JSO格式的字符串才可被写进文件中。
Reading JSON
在JSON文件中读取JSON文件,可以使用Json.load()函数。
异常提示我们.loads的参数必须是:字符串(str)、字节(bytes)、字节数组(bytearray),演示如下: