You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用kwargs向Python字典添加键值对触发格式化错误如何解决

错误原因

  • 格式化参数不匹配
    你代码中字典值部分的写法"%s" %(key,value)仅包含1个%s占位符,却传入了key、value两个参数用于格式化,无法完成参数匹配,直接触发TypeError: not all arguments converted during string formatting报错。
  • 循环覆盖逻辑错误
    即便修复格式化问题,你在循环中每次都为element[elementKey]重新赋值为仅含单个键值对的新字典,最终只会保留kwargs中最后一组键值对,完全达不到生成多键字典的预期。

修复后的代码

写法1:循环追加键值对(适合需要对单个键值做额外处理的场景)

def generateData(elementKey:str, element:dict, **kwargs):
    # 先初始化目标字段为空字典
    element[elementKey] = {}
    for key, value in kwargs.items():
        element[elementKey][key] = value
    return element

写法2:直接赋值kwargs(极简写法,无额外处理需求时优先用)

**kwargs本身就是打包好的关键字参数字典,直接赋值即可:

def generateData(elementKey:str, element:dict, **kwargs):
    element[elementKey] = kwargs
    return element

调用代码和你原写法一致即可,运行后就能得到预期的{'city': {'name': 'Paris', 'label': 'Paris', 'postcode': '75000'}}结果。

内容的提问来源于stack exchange,提问作者Menryck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:06:04