- JSON支持的数据格式
- 对象(字典)。使用花括号
- 数组(列表)。使用方括号
- 整形,浮点型,布尔类型还有null类型
- 字符串类型(字符串必须要用双引号,不能用单引号)
- 多个数据之间用逗号隔开,josn的本质就是一个字符串
- 把python对象转换成JSON对象:
- json.dumps()
import json
stu = [
{'name':'Alice', 'age':18},
{'name':'Bob','age':20},
]
json_stu = json.dumps(stu)
print(type(json_stu))
print(json_stu)
输出:
<class 'str'>
[{"name": "Alice", "age": 18}, {"name": "Bob", "age": 20}]
#单引号被转换成了双引号,类型变成了字符串
- json.dump():可以将python对象转换成json对象的同时传入一个指针用于写文件操作
import json
stu = [
{'name': '云袖', 'age': 18},
{'name': 'Bob', 'age': 20},
]
#json在dump的时候只能存放ascii字符,因此会将中文进行转义,这时候我们可以使用ensure_ascii=False关闭这个特性。
with open('stu.json', 'w', encoding='utf-8') as f:
json.dump(stu, f, ensure_ascii=False)
- 把JSON对象转换成python对象
- json.loads()
import json
json_stu ='[{"name": "云袖", "age": 18}, {"name": "Bob", "age": 20}]'
stu = json.loads(json_stu)
print(stu)
输出:
[{'name': '云袖', 'age': 18}, {'name': 'Bob', 'age': 20}]
- json.load()从文件中读取JSON转换成python对象
import json
with open('stu.json', 'r', encoding='utf-8') as f:
stu = json.load(f)
print(type(stu))
print(stu)
输出:
<class 'list'>
[{'name': '云袖', 'age': 18}, {'name': 'Bob', 'age': 20}]