1. JSON支持的数据格式
  • 对象(字典)。使用花括号
  • 数组(列表)。使用方括号
  • 整形,浮点型,布尔类型还有null类型
  • 字符串类型(字符串必须要用双引号,不能用单引号)
  1. 多个数据之间用逗号隔开,josn的本质就是一个字符串
  2. 把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)
  1. 把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}]