Python关于在循环调用中忽略错误参数继续执行的思考

工作中,碰到了这样一个问题:根据用户ID获取用户信息中的某个参数A。而提供的用户id中,有些通过接口获取的用户信息是空的,那就无法拿到这些用户信息的参数A。

思考1:而当我想逐个把所有的用户信息中的参数A写入一个文件时就不好实现了。怎么解决这个问题呢?想到了用try……except……忽略错误。

思考2:如果try内部任意一行代码出现异常,# 直接跳转至except,执行except下代码。此方法只要有一个异常,程序就不继续执行了。当循环中出现异常时,如何跳过循环中的异常继续执行呢?

思考3:那就是把try 放在每次执行的循环中,出现错误时,在except中用 continue语句继续到下一个循环。当执行无误时,把参数A写入到文件中,当有错误时,跳转到except语句。

思路有了,举个栗子如下:

import json
import requests
import logging
import time
logging.basicConfig(level=logging.DEBUG,filename='xiangmu.log',format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') #设置日志级别

url_token="http://www.xiangmu.com/employee/getTokenByempCode"   #获取用户信息接口

usertoken=[]

with open('F:/stand emp.txt','r') as f1:
    with open('D:/emptoke.txt','r+') as f2:
        lin_content = f1.readlines()               #获取所有用户
        lin_num = len(lin_content)
        print(lin_num)
        for f1_every in lin_content:
            f1_every = f1_every.strip()         # 去除行尾的换行符
            payload = {'userCode': f1_every}          #接口的参数
            print(payload)
            try:
                res=requests.get(url=url_token,params=payload)
                usertoken.append(res.json()['data']['token'])
                token = res.json()['data']['token']            #获取所需要的参数A
                time.sleep(0.1)
                f2.write(token + ' ')
            except Exception as e:
                logging.info('the exception error is %s, other is %s' % (e.args, repr(e)))
                continue
    f2.close()
f1.close()

原文地址:https://www.cnblogs.com/jintianniu/p/15470788.html