我使用python解析YAML文件。在
其中一个YAML文档包含如下字典:
scrapers:
results: //article[@class='story ']
这显然引起了一个问题,因为最后一个撇号前面有一个空格。如果我能去掉空格,问题就解决了。但是,因为它是一个xpath,所以我不能
我怎么能逃过这一幕? 我研究了另一个SO问题,但解决方法是将字符串包装在“”或 使用
^{pr2}$或者
scrapers:>
results: //article[@class='story ']
或者
scrapers:
results: //article[@class='story '']
没用。在
编辑: 我试图打开包含上述表达式的文件:
import yaml
with open('/home/depot/wintergreen/yaml/scrapers.yml', 'r') as f:
scrapers = yaml.load(f)
但是我收到错误: ScannerError:此处不允许映射值
指向story
后的空白。
我一直在尝试下面一位回答者提出的建议,即从python dict创建yaml表达式。这很有效。我把yaml保存到文件中,然后重新加载它,它也能工作。
但是当我通过输入完全相同的字符来创建yaml时,它就不起作用了。。。在
编辑2: 我认为这个问题是因为我在一台windows机器上创建了yaml文件,并将其上传到unix服务器上。在
很容易为结构找到正确的YAML格式:在Python中创建结构,然后使用
yaml.dump
创建YAML编码的字符串:其结果是:
^{pr2}$这是正确的YAML表示法,所以如果您遇到问题,问题出在解析器,而不是输入文本。如果使用标准的
yaml
库,它应该可以很好地解析。在相关问题 更多 >
编程相关推荐