day 16 json和文件操作
json和xml都是通用的数据格式,可以用于不同的编程语言之间的数据交流
json相对xml更小更轻,传输速度更快;xml相对json更安全
json数据
json数据格式的要求:一个json有且只有一个数据;唯一的这个数据必须是json支持的数据类型
json支持类型:
数字:包括整数和小数,表示的时候直接写
字符串:用双引号引起来的数据:“abc”,“小明”
布尔:只有true和false两个值
空值:null
数组:相当于Python中的列表:[数据1,数据2,…]
字典:相当于Python中的字典,但是键只能是字符串:{键1:值1,键2:值2,…}
python和json数据之间的相互转换
使用json必须导入json模块,json模块专门用来处理Python中的json数据
import json
json转python
json -> python
数字 数字
字符串 字符串(双引号变单引号)
布尔 布尔(true -> True、false -> False)
空值 空值(null -> None)
数组 列表
字典 字典
对应的函数:
json.loads(json格式字符串)
-将json格式字符串对应的json数据转换成Python数据
# 示例:从网页接口中解析数据获取所有英雄的名字
# 1.获取json数据(从文件中读出来、直接做网络请求)
import requests
response = requests.get('https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js?ts=2766570')
content = response.text
print(type(content), content)
# 2. json解析(将json数据转化成对应的Python数据)
result = json.loads(content)
for x in result['hero']:
print(x['name'], x['title'])
python转json
python -> json
int、float 数字
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}'