JSON是用于存储和交换数据的语法,是一种轻量级的数据交换格式。经常用于接口数据传输、序列化、配置文件等
json的形式有2种:键值对形式)、数组形式
python可以通过json库,解析字符串或文件中的内容转为json字符串或python的字典或列表
dumps() 将python对象编码成json字符串
loads() 解码json数据,返回python对象
dump() 将python对象编码成json数据并写入json文件中
load() 从json文件中读取数据并解码为Python对象
这个是下载的数据

import requests
import json
import math
headers = {
'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 += 1
data['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')