前言
json模块主要常用的有四个
- json.dumps()
- json.dump()
- json.loads()
- json.load()
今天讲讲load()和load()区别
√ 相同点:
把不同类型的参数转换成对应类型的Python对象
× 不同点:
loads操作的是字符串
load操作的是文件流
Python对象包括:所有Python基本数据类型,列表,元组,字典,自己定义的类,等等,不包括Python的字符串类型,把字符串或者文件中的字符串转为字符串会报错的
举例环节
什么叫把不同类型的参数转换成对应类型的Python对象
- 将整数类型的字符串转为int类型的python对象
print(type(json.loads("123456"))) # <class 'int'>
- 将浮点类型的字符串转为float类型python对象
print(type(json.loads("123.456"))) # <class 'float'>
- 将boolean类型的字符串转为bool类型的python对象
print((type(json.loads("true")))) # <class 'bool'>
- 将列表类型的字符串转为列表类型的python对象
print(type(json.loads('["a", "b", "c"]'))) # <class 'list'>
- 将字典类型的字符串转为dict类型的python对象
print(type(json.loads('{"a": 1, "b": 1.2, "c": true, "d": "ddd"}'))) # <class 'dict'>
load()和load()对比举例
json.load读取文件并将文件内容转为Python对象
with open('demo.json', 'r', encoding="utf-8") as f:
s1 = json.load(f)
print(s1) # {'sex': '女', 'name': 'jingjing', 'age': 18}
print(type(s1)) # <class 'dict'>
json.loads将字符串转为Python对象
s = '{"sex": "女","name": "jingjing","age": 18}'
print(json.loads(s)) # {'sex': '女', 'name': 'jingjing', 'age': 18}
print(type(json.loads(s))) # <class 'dict'>