仅当可用时才从XML值提取值

2024-06-02 11:51:13 发布

您现在位置:Python中文网/ 问答频道 /正文

新手,正在尝试从XML文件中的标记中提取值:docid,year,citedWork。但是,并非所有条目都包含citedWork标记。你知道吗

enter image description here

目前,我收到:

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 = +1

doc_id= element.find('docid').text
list_nodes.append(doc_id)

year= element.find('year').text
list_nodes.append(year)

cit_title= element.find('citedTitle').text
list_nodes.append(cit_title)

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


CSV_writer.writerow(list_nodes)

xml格式_csv.close关闭()


Tags: textiddoctitletagelementresultfind
2条回答
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

试试下面的代码

cit_work= element.find('citedWork').text
except:
   cit_work= None

如果它不在xml文件中,它将是无的。试试这个!你知道吗

相关问题 更多 >