在记录函数 pylint 错误消息中使用惰性 % 格式
Use lazy % formatting in logging functions pylint error message
我有一个 python 函数如下,当启用 pylint 进行代码扫描时,它会抛出一个惰性格式错误。
def modify_response(data):
try:
response = {}
response["User_ID"] = data[0]["User_ID"]["S"]
response["Triggered_Timestamp"] = data[0]["Triggered_Timestamp"]["S"]
return response
except Exception as e:
logging.exception("ModifyResponseError: {}".format(e))
raise ModifyResponseError(json.dumps({"httpStatus": 501,"message": internal_error_message}))
假设该行是
logging.exception("ModifyResponseError: {}".format(e))
警告是
W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
应该向日志记录函数传递格式字符串和参数,而不是已经格式化的字符串。否则,您可能会冒格式化操作本身在日志记录发生之前引发异常的风险。这些都是老派 printf style format strings。出于同样的原因,pylint 也会抱怨 f-strings。
linter 会很满意
logging.exception("ModifyResponseError: %s", e)
详情见logging.debug
。
我有一个 python 函数如下,当启用 pylint 进行代码扫描时,它会抛出一个惰性格式错误。
def modify_response(data):
try:
response = {}
response["User_ID"] = data[0]["User_ID"]["S"]
response["Triggered_Timestamp"] = data[0]["Triggered_Timestamp"]["S"]
return response
except Exception as e:
logging.exception("ModifyResponseError: {}".format(e))
raise ModifyResponseError(json.dumps({"httpStatus": 501,"message": internal_error_message}))
假设该行是
logging.exception("ModifyResponseError: {}".format(e))
警告是
W1202: Use lazy % formatting in logging functions (logging-format-interpolation)
应该向日志记录函数传递格式字符串和参数,而不是已经格式化的字符串。否则,您可能会冒格式化操作本身在日志记录发生之前引发异常的风险。这些都是老派 printf style format strings。出于同样的原因,pylint 也会抱怨 f-strings。
linter 会很满意
logging.exception("ModifyResponseError: %s", e)
详情见logging.debug
。