python SPARQL查询结果BINDINGS:关于BINDINGs值的IF语句?

时间:2011-09-19 11:19:58

标签: python sparql

将Python与SPARQLWrapper,JSON,urlib2& CGI。有麻烦将带有一些NULL值的工作SPARQL查询传递给python所以我用文字填充空白并尝试在输出处过滤。我有这个结果部分的例子:

for result in results["results"]["bindings"]:
          project = result["project"]["value"].encode('utf-8')
          filename = result["filename"]["value"].encode('utf-8')
          url = result["url"]["value"].encode('utf-8')

...我打印%s。有没有办法过滤一个值,即IF VALUE NE“string”然后PRINT?或者还有另一种解决方法吗?我是一个小项目的尾端,我知道我需要一个更好的包装器,我只需要在我继续前进过滤这些结果。很多IA ......

1 个答案:

答案 0 :(得分:2)

我是SPARQLWrapper库的开发人员之一,问题是already answered at the mailing list

关于原始查询的选项值,结果集将没有这些变量的值。问题是我们需要解析查询以填充这些丢失的条目,我们希望避免这种解析;因此,您需要检查它以避免KeyError的运行时问题。

通常我会使用如下代码:

for result in results["results"]["bindings"]:
    party = result["party"]["value"] if ("party" in result) else None