在使用VScode进行调试时,调试不会进入到自定义的函数内部,如果不使用try/except进行异常处理,函数内部出现的错误不易被发现!

一、代码

import requests
import json

headers = {
    'User-Agent':
        'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
form_data = {'cname': None, 'pageIndex': '1', 'pageSize': '10'}

# 获取返回结果
def getPages(url):
    try:
        req = requests.post(url, headers=headers, data=form_data)
        req.raise_for_status()
        return req.text
    except:
        print("异常!")
        return ''


if __name__ == "__main__":
    url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=cname'
    cname = input("请输入要查询的地点(省or市or县):")
    form_data['cname'] = cname
    text = getPages(url)
    # print(text)
    json_data = json.loads(getPages(url))
    # print(json_data)
    amount = json_data['Table'][0]['rowcount']
    print("{}共有{}家肯德基店!".format(cname, amount))
    count = input("请输出您想要显示的店铺数量:")
    form_data['pageSize'] = count
    json_data = json.loads(getPages(url))
    print("信息如下:")
    form = '序号:{:<5}店名:{:<15}'
    for i in range(eval(count)):
        name = json_data['Table1'][i]['storeName']
        address = json_data['Table1'][i]['addressDetail']
        print(form.format(i + 1, name))
        print("Address: {}".format(address))

二、运行结果