使用Python和LXML解析XML时,将None对象替换为Null



可能重复:
用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的所有实例。

相关内容

  • 没有找到相关文章

最新更新