python - 记录 kwargs 时出现 TypeError
问题描述
我在记录 kwargs 和 args 时遇到 TypeError。下面是我用来记录 kwargs 的 Django View 类的基类。
class CustomAPI(APIView):
_url = None
def initial(self, request, *args, **kwargs):
logger.info("Request: %s, Args: %s, Kwargs: %s" % (request.__dict__, str(*args), str(**kwargs)))
CustomAPI._url = request.get_full_path()
super(CustomAPI, self).initial(request, *args, **kwargs)
错误日志显示以下错误 -
文件“path/to/app/api_common.py”,第 55 行,初始logger.info ("Request: %s, Args: %s, Kwargs: %s" % (request.dict , str(*args), str(**kwargs))) TypeError: 'id' is an invalid keyword argument for this function
str(**kwargs) 有什么问题吗?
解决方案
目前,您拥有str(**kwargs)
. 如果kwargs
是{'id': '5'}
,这相当于str(id=5)
,它引发了一个TypeError
因为str
不接受id
。
如果你想要kwargs
字典的字符串表示,那么使用:
str(kwargs)
同样,str(*args)
如果len(args) > 1
. 你应该使用:
str(args)
推荐阅读
- arduino - esp8266中创建的mdns服务无法浏览
- android - 如何在活动中设置片段并在recyclerview中添加cardview
- selenium - 如何在 TestNG.xml 中优先执行包?
- javascript - Laravel:javascript由于某些原因无法正常工作
- java - 无法重现 org.apache.hadoop.mapred.Child:运行子错误:java.lang.OutOfMemoryError:Java 堆空间错误
- gnu - GNU LD:重叠部分 (NOLOAD) 不会产生错误
- css - 操作系统相关的浏览器开关
- r - 列表到 r 中的 data.frame
- shell - Unix:如何用另一个文件中的每个字符串替换一个模式
- c++ - 为什么在 Qt 中继承 QWidget 类时出现内存泄漏