将带有非字符串关键字的 dict 传递给 kwargs 中的函数

2024-05-03

我使用具有签名功能的库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()})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将带有非字符串关键字的 dict 传递给 kwargs 中的函数 的相关文章