Python Post请求如何将None转为null避免组件名称无效错误?
解决方案
问题出在你直接将None作为组件name的值传入,Jira API不接受组件name为null或字符串"null"的情况,你需要的是当v为空时完全跳过该组件项,而不是传递无效值。
直接动态构建components列表即可解决:
v = None # 这里v可能是动态生成的字符串或None # 初始化基础组件列表 components = [{"name": "c1"}] # 仅当v不为空时,添加第二个组件 if v is not None: # 如果需要排除空字符串,可将判断改为 if v and v.strip() components.append({"name": v}) # 构建请求体 issue = { "fields": { "project": {"id": "x"}, "summary": "s", "issuetype": {"name": "n"}, "components": components } }
为什么之前的方法无效:
- 用
{"name": v}且v = None时,Python转JSON后会变成{"name": null},Jira API不允许组件name为null; - 用字符串
'null'的话,JSON会是{"name": "null"},相当于把"null"当作组件名称,自然不符合要求。
如果你的动态数据中v可能是空字符串(如""),可以把判断条件调整为if v and v.strip(),确保只有非空的有效字符串才会被添加到组件列表中。
内容的提问来源于stack exchange,提问作者Seif
相关产品推荐
相关产品推荐

