day16 学习总结
1. json数据
-
json
- json是一种通用的数据格式,可以用于不同编程语法之间的数据交流
- json相对于xml,更小更轻,传输更快;xml相对于json更安全。
-
json数据格式
- json数据格式的要求:一个json有且只有一个数据;唯一的这个数据必须是json支持的类型的数据
- json支持类型:
- 数字 - 包括整数和小数,标志是的时候直接写:100,23.53e4
- 字符串 - 用双引号引起来的数据:“abc”,“你好”
- 布尔 - 只有true和false两个值
- 空值 - null
- 数组 - 相当于Python的列表[数据1,数据2,…]
- 字典 - 相当于python中的字典,但是键只能是字符串:{键1:值1,键2:值2}
-
Python数据和json数据之间的转换
-
json转Python
- 数字 —> 数字
- 字符串 —> 字符串(双引号遍单引号)
- 布尔 —> 布尔(true -> True ; false -> False)
- 空值 —> 空值(null --> None)
- 数组 —> 列表
- 字典 —> 字典
-
对应的函数:json.loads(json格式字符串) - 键json格式字符串对应的json数据转换Python数据
-
注意:json格式字符串指的是内容是json数据的字符串。
result = json.loads('"abc"') # "abc" -> 'abc' print(result, type(result)) # abc <class 'str'> result = json.loads('100') # 100 -> 100 print(result, type(result)) # 100 <class 'int'> result = json.loads('true') # true -> True print(result, type(result)) # True <class 'bool'> result = json.loads('[100, "小明", null, true, false]') print(result, type(result)) # [100, '小明', None, True, False] <class 'list'> # 从json文件中解析数据获取所有英雄的名字 f = open('../files/hero.json',encoding='utf-8') content = f.read() # 读取json文件 result = json.loads(content) # json文件转python for i in result["hero"]: # 遍历 print(i["name"],i["title"])
-
python转json
- str —> 字符串(单引号变双引号)
- bool —> True -> true,False -> false
- None —> null
- 列表,元组 —> 数组
- 字典 —> 字典
-
对应的函数:
-
json.dumps(Python数组) - 将指定Python数据转换成对应的json格式字符串
json.dumps(100) # '100' json.dumps('abc') # '"abc"' json.dumps(True) # 'true' result = json.dumps({'a': 10, 20: 30, 'name': 'xiaoming', 'isMarred': True}) print(result, type(result)) # '{"a": 10, "20": 30, "name": "xiaoming", "isMarred": true}'
-
-