繁体   English   中英

在python中解析Solr输出

[英]Parse Solr output in python

我试图解析形式的solr输出:

<doc>
<str name="source">source:A</str>
<str name="url">URL:A</str>
<date name="p_date">2012-09-08T10:02:01Z</date>
</doc>
<doc>
<str name="source">source:B</str>
<str name="url">URL:B</str>
<date name="p_date">2012-08-08T11:02:01Z</date>
</doc>

我热衷于使用漂亮的汤(具有BeautifulStoneSoup的版本;我认为是在BS4之前的版本)来解析文档。 我使用了漂亮的汤来进行HTML解析,但是有些原因使我无法找到一种有效的方法来提取标记的内容。

我已经写了:

for tags in soup('doc'):
    print tags.renderContents()

我确实认为我可以强行通过它来获取输出(例如再次说“汤化”),但是我希望能有一种有效的方法来提取数据。 我的输出要求是:

source:A
URL:A
2012-09-08T10:02:01Z
source:B
URL:B
2012-08-08T11:02:01Z

谢谢

使用XML分析器代替任务; xml.etree.ElementTree包含在Python中:

from xml.etree import ElementTree as ET

# `ET.fromstring()` expects a string containing XML to parse.
# tree = ET.fromstring(solrdata)  
# Use `ET.parse()` for a filename or open file object, such as returned by urllib2:
ET.parse(urllib2.urlopen(url))

for doc in tree.findall('.//doc'):
    for elem in doc:
        print elem.attrib['name'], elem.text

您必须使用这种特定的输出格式吗? Solr开箱即用地支持Python输出格式(至少在版本4中),只需在查询中使用wt = python。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM