gpt4 book ai didi

python - 什么都找不到时使用 lxml findtext 抛出异常的更好方法

转载 作者:太空宇宙 更新时间:2023-11-04 01:02:21 25 4
gpt4 key购买 nike

我使用 lxml etree 来解析一个 xml 文件,并想确保文件中有一些字段。我的代码应该是这样的。

try:
with open(filename, 'r') as conf:
rt = etree.parse(conf)

CONF['user1'] = rt.findtext('//user1')
if not CONF['user1']:
raise ValueError('Cannot find uer1 in conf file')

CONF['field2'] = rt.findtext('//field2')
if not CONF['field2']:
#raise again

# And so on
Except Exception as err:
print err

你可以看到编码很乏味。是否有类似 rt.findtext('//field', default=rasie exception("With my message")) 的内容?

最佳答案

我没有看到任何此类方法可以直接执行此操作,但您可以创建自己的函数来执行此操作,示例 -

def findtext_with_exception(element,xpath,message):
ret = element.findtext(xpath)
if not ret:
raise ValueError(message)
return ret

然后你可以使用这个方法代替 findtext as -

CONF['user1'] = findtext_with_exception(rt, '//user1', 'Cannot find uer1 in conf file')
CONF['field2'] = findtext_with_exception(rt, '//field2', '<Next message>')

关于python - 什么都找不到时使用 lxml findtext 抛出异常的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32255897/

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