我使用的库具有签名 f(*args, **kwargs)
的功能。
我需要在 kwargs 参数中传递 python dict,但 dict 不包含关键字中的字符串
f(**{1: 2, 3: 4})
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: f() keywords must be strings
如何在不编辑函数的情况下解决这个问题?
最佳答案
非字符串关键字参数是不允许的,所以这个问题没有通用的解决方案。您的具体示例可以通过将 dict
的键转换为字符串来修复:
>>> kwargs = {1: 2, 3: 4}
>>> f(**{str(k): v for k, v in kwargs.items()})
关于python - 传递带有非字符串关键字的字典以在 kwargs 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14981810/