gpt4 book ai didi

Python XML解析- "is not None"的使用

转载 作者:太空宇宙 更新时间:2023-11-03 17:57:32 26 4
gpt4 key购买 nike

我正在尝试使用 xml.etree.ElementTree 解析包含 python 2.7.9 中的可选字段的 XML 文档。

当我使用以下循环时:

summary = curTag.find('summary')
if summary is not None:
summary = curTag.find('summary').text.encode('utf8')
summary = summary.replace("'","'||chr(39)||'")
summary = summary[:4000]

我收到错误 - AttributeError: 'NoneType' 对象没有属性 'encode'

但是当我使用时它会起作用:

summary = curTag.find('summary')
if summary:
summary = curTag.find('summary').text.encode('utf8')
summary = summary.replace("'","'||chr(39)||'")
summary = summary[:4000]

但是,我收到警告 -FutureWarning:此方法的行为将在未来版本中更改。请改用特定的“len(elem)”或“elem is not None”测试。 如果summary.text不是None:

我刚刚从 R 迁移到 python,并试图找出为什么会发生这种情况。

<小时/>

添加确切的错误:

Traceback (most recent call last):

文件“”,第 1 行,位于 runfile('D:/XML_Parsev1.0.py', wdir='D:')

文件“C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py”,第 601 行,在运行文件中 execfile(文件名,命名空间)

文件“C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py”,第 66 行,在 execfile 中 exec(编译(脚本文本,文件名,'exec'),glob,loc)

文件“D:/XML_Parsev1.0.py”,第 69 行,位于 摘要 = curTag.find('summary').text.encode('utf8')

AttributeError:“NoneType”对象没有属性“encode”

最佳答案

您的摘要标记似乎为空,因此 curTag.find('summary').text 等于 None

您无法对 None 进行编码,因为 None 不是字符串。

这里有一个快速解决方法:

if summary: 
summary = (curTag.find('summary').text or '').encode('utf8')

这是有效的,因为如果 summary.textNone,则 or 语句将返回一个完全可编码的空字符串。

关于Python XML解析- "is not None"的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28274229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com