一、json简单介绍
JSON是用于存储和交换数据的语法,是一种轻量级的数据交换格式。经常用于接口数据传输、序列化、配置文件等
json的形式有2种:键值对形式)、数组形式
python可以通过json库,解析字符串或文件中的内容转为json字符串或python的字典或列表
二、json中会有几个常用的方法
dumps() 将python对象编码成json字符串loads() 解码json数据,返回python对象dump() 将python对象编码成json数据并写入json文件中load() 从json文件中读取数据并解码为Python对象
这个是下载的数据
三、简单使用
import requests
import json
import mathheaders = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
}
# 参数op=keyword表示按城市查询
url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'
city = input('输入要查询的城市:')
data = {'keyword': city,'pid': '','pageIndex': '1','pageSize': '10','cname': ''
}
res = requests.post(url=url, data=data, headers=headers)res_json = res.json()
row_counts = res_json['Table'][0]['rowcount'] # 记录总条数
page_counts = math.ceil(row_counts / 10) # 总页数,向上取整
pageIndex = 1 # 当前页数
while pageIndex < page_counts:pageIndex += 1data['pageIndex'] = str(pageIndex) # 改变当前页码# Table对应的值不变,只需改变Table1的列表长度res_json['Table1'] += json.loads(requests.post(url=url, data=data, headers=headers).text)['Table1']# # 保存格式化后的JSON
# indent 设置缩进空格数
# ensure_ascii 对中文使用ASCII编码,默认为True
# sort_keys 排序with open(r'./'+city+'.json', 'w', encoding='utf-8') as fp:res_formatted = json.dumps(res_json, indent=4, ensure_ascii=False, sort_keys=False)fp.write(res_formatted)print('ok')