Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python SPARQL查询结果绑定:关于绑定值的IF语句?_Python_Sparql - Fatal编程技术网

python SPARQL查询结果绑定:关于绑定值的IF语句?

python SPARQL查询结果绑定:关于绑定值的IF语句?,python,sparql,Python,Sparql,将Python与SPARQLWrapper、JSON、urlib2和cgi结合使用。在将带有一些空值的SPARQL查询传递给python时遇到问题,因此我用一个文本填充了空格,并将尝试在输出处进行过滤。我有以下结果部分示例: for result in results["results"]["bindings"]: project = result["project"]["value"].encode('utf-8') filename = result[

将Python与SPARQLWrapper、JSON、urlib2和cgi结合使用。在将带有一些空值的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
。是否有方法过滤值,即如果值为“字符串”,则打印?还是有其他解决办法?我正处于一个小项目的末尾,我知道我需要一个更好的包装器,我只需要在继续之前过滤这些结果。我是SPARQLWrapper库的开发人员之一,问题是

关于原始查询中的optionals值,结果集将不包含这些变量的值。问题是我们需要解析查询来填充这些缺失的条目,并且我们希望避免这种解析;因此,您需要检查它以避免KeyError的运行时问题

通常我使用的代码如下:

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

这些空值来自SPARQL中的可选子句吗?是的,空值来自我的SPARQL中的可选子句。抱歉,响应延迟,一定没有收到通知。我与SPARQLWrapper开发人员进行了检查,并收到了一个解决方案:“对于结果[“结果”][“绑定”]:if result.has_key(“party”):print“*”+结果[“person”][“value”]+“**”+结果[“party”][“value”]否则:print result[“person”][“value”]”。我需要以某种方式巧妙地使用%s…你打算提出不同的解决方案吗?不,不太可能。这似乎是正确的解决方案。