结构化文件存储-Json

JSON 比 XML 更小、更快,更易解析。

什么是json

JSON:JavaScript 对象表示法(JavaScript Object Notation)。

Json是一种轻量级的数据交换格式,
JSON 文件的文件类型是 “.json”

格式:键值对,大括号包裹,字符串要用双引号

JSON 值可以是:

数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在中括号中)
对象(在大括号中)
null

json对象

json对象在大括号中

{"name": "xiaoming"}

json数组

json数组在中括号中

{"sites": [{"name": "菜鸟"}, {"name": "百度"}]}

python中的json包

在python中,字典的格式是dict,json的格式是str

import json

  • json.dumps() :把python格式表示成json
  • json.loads() :把json格式转换成python

python读取json文件

  • json.dump() :把内容写入文件
  • json.load() :读入json文件

python中的dict与json格式转换:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import json

student = {
"name": 'xiaoming',
"age": 18,
"mobile": '123456789'
}

print(type(student))

stu_json = json.dumps(student)
print(type(stu_json))
print(stu_json)


stu_dict = json.loads(stu_json)
print(type(stu_dict))
print(stu_dict)

打印结果

<class 'dict'>
<class 'str'>
{"name": "xiaoming", "age": 18, "mobile": "123456789"}
<class 'dict'>
{'name': 'xiaoming', 'age': 18, 'mobile': '123456789'}

注意到单双引号的变化


python中json数据的读写

1
2
3
4
5
6
7
8
9
10
import json

data = {"name": "xiaoming", "age": 12}

with open('C:/Users/腾飞/Desktop/a.json', 'w') as f:
json.dump(data, f)

with open('C:/Users/腾飞/Desktop/a.json', 'r') as f:
d = json.load(f)
print(type(d))

打印结果:

<class 'dict'>

由于最外层是大括号,则最终的数据类型是dict