json的含义
爬虫的流程
总结
json,全称JavaScript object notation,也就是JavaScript对象标记,通过对象个数组的组合来表示数据,构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。
1、对象和数组
在 JavaScript 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等,但是对象和数组是比较特殊且常用的两种类型,下面简要介绍一下它们。
对象:它在 JavaScript 中是使用花括号 {} 包裹起来的内容,数据结构为 {key1:value1, key2:value2, …} 的键值对结构。在面向对象的语言中,key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型。
数组:数组在 JavaScript 中是方括号 [] 包裹起来的内容,数据结构为 [“java”, “javascript”, “vb”, …] 的索引结构。在 JavaScript 中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引用得多。同样,值的类型可以是任意类型。
json可以写成以下的形式:
[{
"name":"bo",
"old":"18",
"action":"jiasai"},{
"name":"beichaung",
"old":"19",
"action":"shangchang"}]
由中括号包围的就相当于列表类型,列表中的每个元素可以是任意类型,这个实例中它是字典类型,由大括号包围。
json可以由以上两种形式自由组合而成,可以无限次嵌套,结构清晰,是数据交换的极佳方式。
2、读取json
我们可以调用库的loads()方法将json文本字符串转为json对象,可以通过dumps()方法将json对象转为文本字符串。
import json
str = '''
[{
"name":"bo",
"old":"18",
"action":"jiasai"},{
"name":"beichaung",
"old":"19",
"action":"shangchang"}]
'''
print(type(str))
data = json.loads(str)
print(data)
print(type(data))
print(data[0]['old'])
<class 'str'>
[{'name': 'bo', 'old': '18', 'action': 'jiasai'}, {'name': 'beichaung', 'old': '19', 'action': 'shangchang'}]
<class 'list'>
18
import json
data = [{'name': '王伟', 'old': '18', 'action': '假赛'}, {'name': '北川', 'old': '19', 'action': '上场'}]
with open('data1.json','w') as file:
file.write(json.dumps(data,indent=2,ensure_ascii=False));
3、输出json
import json
data = [{
'name':'yuanhuiming',
'gender':'famale',
'birthday':'1999-9-17'
}]
with open('data.json','w') as file:
file.write(json.dumps(data,indent=2))
调用dumps()方法将json对象转化为字符串。