如何用Python循环并递增生成带编号的XML问答节点
问题:生成带递增编号的问答XML节点
现有Python代码
linenum = 1 for g in u.answers: attr = "" lines.append("\t\t<answer%s>%s</answer>" % (attr, g[0])) linenum += 1
当前生成的XML内容
<xml> <answer>Primary Job Function</answer> <answer>Engineering</answer> <answer>Size of Company</answer> <answer>100</answer> <answer>Job Level</answer> <answer>Manager</answer> <answer>Type of Company</answer> <answer>Supplier</answer> <xml>
期望生成的XML内容
<xml> <question1>Primary Job Function</question1> <answer1>Engineering</answer1> <question2>Size of Company</question2> <answer2>100</answer2> <question3>Job Level</question3> <answer3>Manager</answer3> <question4>Type of Company</question4> <answer4>Supplier</answer4> </xml>
修改后的代码
linenum = 1 # 每两个元素为一组遍历(对应问题+回答) for i in range(0, len(u.answers), 2): lines.append(f"\t\t<question{linenum}>{u.answers[i][0]}</question{linenum}>") lines.append(f"\t\t<answer{linenum}>{u.answers[i+1][0]}</answer{linenum}>") linenum += 1
代码说明
- 用
range(0, len(u.answers), 2)实现按问题+回答的组来遍历,刚好匹配你要的成对节点结构 - 改用f-string格式化字符串,比原来的%格式化更直观,方便插入编号
- 每组遍历后递增
linenum,保证question和answer的编号一一对应且连续递增
内容的提问来源于stack exchange,提问作者user1787060
相关产品推荐
相关产品推荐

