Python如何向JSON结构字典的questions列表添加标签及多条问题
错误原因
- 第一种写法存在语法错误:Python 字典必须遵循
{键: 值}的构造规则,你写的{["Tags"].append({"tagname":tags[ind]})}既没有定义合法的字典键,且列表append()方法的返回值为None,完全无法生成符合结构的问题对象。 - 第二种写法索引越界的原因:初始化的
quest_attr["questions"]列表默认只有1个元素,当循环的索引ind大于0时,列表中不存在对应下标的元素,因此抛出越界异常。
正确实现
场景1:给已存在的问题追加多个标签
如果你只需要修改初始已有的问题,给它的Tags字段追加多个标签,实现代码如下:
# 你的标签列表,可自行修改内容 tags = ["#Education", "#Social"] # 遍历标签追加到第一个问题(下标为0)的Tags列表 for tag in tags: quest_attr["questions"][0]["Tags"].append({"tagname": tag}) # 如果需要删除初始的空tag,可额外加一行 # quest_attr["questions"][0]["Tags"].pop(0)
场景2:批量新增多条问题,其余字段默认设为None
如果你需要向顶层questions列表添加多条符合结构的问题,每条可以配置独立的标签,实现代码如下:
# 示例配置:每条问题对应一个标签列表,可自行增删修改 question_tags_config = [ ["#Education", "#Campus"], ["#Social", "#Policy"], ["#Technology", "#Programming"] ] for per_quest_tags in question_tags_config: # 构造符合结构的新问题对象,其余字段设为None new_quest = { "Tags": [{"tagname": tag} for tag in per_quest_tags], "Title": None, "Authors": [{"name": None}], "Answers": [{"ans": None}], "Related_Questions": [{"quest": None}] } # 追加到顶层questions列表 quest_attr["questions"].append(new_quest)
内容的提问来源于stack exchange,提问作者Talha Jaleel Chatha
相关产品推荐
相关产品推荐

