可能重复:
用LXML和Python解析空白XML标记
给定以下XML文件:
<Car>
<Color>Blue</Color>
<Make>Chevy</Make>
<Model/>
</Car>
并使用以下代码:
Car = element.xpath('//Root/Foo/Bar/Car/node()')
parsedCarData = [{field.tag: field.text for field in Car} for action in Car]
如何用空白字符串替换None
类型的键值,以便将解析后的键值用于MySQL语句。
我的尝试-感谢Marcin使用转向架似乎起到了的作用
parsedCars = [{field.tag: field.text if isinstance(field.text,str) else '' for field in Cars} for action in Cars]
在我的案例中,它总是被评估为真实的。但是,当输出前一个None类型时,会输出两次。欢迎改进!
考虑到您的需求,您最好在is None
上进行过滤,但在实践中,我怀疑这是否会有所不同:
parsedCars = [{field.tag: field.text if field.text is not None else '' for field in Cars} for action in Cars]
不过,您可能应该使用basestr
而不是str
,因为如果lxml切换到unicode,您的代码将用''
替换unicode
的所有实例。