为了账号安全,请及时绑定邮箱和手机立即绑定

仅在可用时从 XML 值中提取值

仅在可用时从 XML 值中提取值

慕侠2389804 2021-11-23 20:00:05
这里的新手,试图从 XML 文件中的标签中提取值:docid、year、citedWork。但是,并非所有条目都包含引用工作标记。目前,我收到了:AttributeError: 'NoneType' 对象没有属性 'text'关于如何将此条件合并到脚本中的任何建议?谢谢!for element in root.findall(".//return/references"):list_nodes=[]if count == 0:    doc_id= element.find('docid').tag    result.append(doc_id)    year= element.find('year').tag    result.append(year)    cit_title= element.find('citedTitle').tag    result.append(cit_title)    cit_work= element.find('citedWork').tag    result.append(cit_work)    CSV_writer.writerow(result)    count = +1doc_id= element.find('docid').textlist_nodes.append(doc_id)year= element.find('year').textlist_nodes.append(year)cit_title= element.find('citedTitle').textlist_nodes.append(cit_title)cit_work= element.find('citedWork').textlist_nodes.append(cit_work)    CSV_writer.writerow(list_nodes)xml_csv.close()
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

cit_work= element.find('citedWork').tag

cit_work= element.find('citedWork').text

对于这些情况,如果您预计 'citedWork' 可能不存在,您可以在尝试访问其任何属性之前检查其返回值find是否不存在None。


cit_work_elem = element.find('citedWork')

if cit_work_elem:

    cit_work = cit_work_elem.text


查看完整回答
反对 回复 2021-11-23
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

试试下面的代码,


cit_work= element.find('citedWork').text

except:

   cit_work= None

如果它不在 xml 文件中,它将是 None。尝试这个!


查看完整回答
反对 回复 2021-11-23
  • 2 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信