在上周之前,我使用Python的经验非常局限于我们网络上的大型数据库文件,突然间,我开始尝试从html表中提取信息。
经过大量阅读,我选择在Python2.7中使用lxml和xpath来检索相关数据。我使用以下代码检索了一个字段:
xpath = "//table[@id='resultsTbl1']/tr[position()>1]/td[@id='row_0_partNumber']/child::text()"
产生了以下清单:
['\r\n\t\tBAR18FILM/BKN', '\r\n\t\t\r\n\t\t\t', '\r\n\t\t\t', '\r\n\t\t\t', '\r\n\t\t\t', '\r\n\t\t\t', '\r\n\t\t\t\r\n\t\t']
我认识到CR/LF和制表符转义字符,我想知道如何避免它们?
这些字符是XML文档的一部分,这就是返回这些字符的原因。你不能回避它们,但你可以把它们去掉。您可以调用。返回的每个项目上的strip()
方法:
results = [x.strip() for x in results]
这将去除领先和落后的空白。如果没有看到实际的代码和数据,很难给出一个好的答案。
例如,给定此脚本:
#!/usr/bin/python
from lxml import etree
with open('data.xml') as fd:
doc = etree.parse(fd)
results = doc.xpath(
"//table[@id='results']/tr[position()>1]/td/child::text()")
print 'Before stripping'
print repr(results)
print 'After stripping'
results = [x.strip() for x in results]
print repr(results)
这些数据:
<doc>
<table id="results">
<tr>
<th>ID</th><th>Name</th><th>Description</th>
</tr>
<tr>
<td>
1
</td>
<td>
Bob
</td>
<td>
A person
</td>
</tr>
<tr>
<td>
2
</td>
<td>
Alice
</td>
<td>
Another person
</td>
</tr>
</table>
</doc>
我们得到了以下结果:
Before stripping
['\n\t\t\t1\n\t\t\t', '\n\t\t\tBob\n\t\t\t', '\n\t\t\tA person\n\t\t\t', '\n\t\t\t2\n\t\t\t', '\n\t\t\tAlice\n\t\t\t', '\n\t\t\tAnother person\n\t\t\t']
After stripping
['1', 'Bob', 'A person', '2', 'Alice', 'Another person']
问题内容: 嗨,假设我有字符串 请注意转义的反斜杠。 如何将其转换为相应的unicode字符串? 问题答案: print ‘test \u0259’.decode(‘unicode-escape’) test ə
如标题所示,如果“模型”不完整,我所要做的就是返回一个自定义错误集合。 虽然我在积极地“搜索/谷歌”,但我还没有找到解决问题的办法。 我可以使用“modelstate”,但是由于“定制”,我想手动这样做。 代码如下: null null 基于自定义属性查找不完整的属性 属性样本 所以忽略后面的两个片段,更多的是给出一个完整的流程概述。我完全理解有一些“开箱即用”的技术,但我确实喜欢创建自己的实现。
问题内容: 如果您有一个带有unicode字符的字符串,则可以打印它,并获得未转义的版本: 但是如果我们有一个包含上面字符串的列表并打印出来: 您仍然会获得转义的字符序列。您如何才能使列表的内容不被转义,这可能吗?像这样: 另外,如果字符串是类型,那么您如何与上述相同? 问题答案: 打印字符串时,将获得对象方法的输出- 在这种情况下,该字符串不带引号。列表的方法不同,它创建一个包含打开和关闭的字符
我正在Tomcat 7.0上使用SAP Commerce(Hybris)中的ORBEON 2018.2.3.201905172253 PE。当Hybris点击Orbeon应用程序创建一个新表单并获得中文的内联HTML时,我得到的是问号而不是中文字符。 URL:http://localhost:9001/orbeon/fr/yforms/myform/new?orbeon-embeddable=tr
在C语言中,我用以下形式指定了一个Unicode字符: 然而,我找不到关于它是如何存储的任何细节。是UTF-8、16、32吗?是否有指定UTF-8编码的符号,或者我必须用十六进制写每个字节?
此函数接收字符串文本,并返回一个包含字符串列表的列表,字符串文本中的每个句子都有一个列表。 句子由一个字符串“.”分隔, "?",或者“!”.我们忽略了其他标点分隔句子的可能性。所以‘X先生’会变成2句,‘不要’是两个字。 例如,文本是 函数返回: 最令人困惑的部分是如何使函数检测字符?以及如何使其成为每个句子中包含单词的列表。非常感谢。