首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >results = results['results']['bindings'] Flask错误

results = results['results']['bindings'] Flask错误
EN

Stack Overflow用户
提问于 2014-11-12 19:00:55
回答 1查看 159关注 0票数 0

我尝试通过这个Sparql查询获得结果绑定。通过这个Sparql入口点:http://digitale.bncf.firenze.sbn.it/openrdf-workbench/repositories/NS_03_2014/query

我有一个错误:"TypeError: query()接受至少2个参数(给定1个)

谢谢!

代码语言:javascript
复制
@app.route('/caricaArgomento/<type>', methods=['GET'])
def getArgomento(type):
    #sparql = SPARQLUpdateStore("http://digitale.bncf.firenze.sbn.it/openrdf-      workbench/repositories/NS_03_2014/query")
    sparql=SPARQLUpdateStore("http://digitale.bncf.firenze.sbn.it/openrdf-workbench/repositories/NS_03_2014/query")
    sparql.setQuery("""
    PREFIX dc:<http://purl.org/dc/elements/1.1/>
    PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
    PREFIX nsogi:<http://prefix.cc/nsogi>
    PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
    PREFIX dcterms:<http://purl.org/dc/terms/>
        SELECT ?risultato
        WHERE {
         ?item a skos:Concept .
         ?item skos:prefLabel ?risultato .
         filter regex(?risultato, """+type+""", "i")
        } ORDER BY  ?risultato
         """)

     #FILTER regex(str(?aConcept), "http://thes.bncf.firenze.sbn.it/", "i").}

    sparql.setReturnFormat(JSON)
    results = sparql.query().convert()
    results = results['results']['bindings']
    results = json.dumps(results)

return results

digitale.bncf.firenze.sbn.it digitale.bncf.firenze.sbn.it

EN

回答 1

Stack Overflow用户

发布于 2014-11-12 19:36:48

查看相关的documentation sparql.query()...需要一个查询参数。

代码语言:javascript
复制
sparql=SPARQLUpdateStore("http://digitale.bncf.firenze.sbn.it/openrdf-workbench/repositories/NS_03_2014/query")

sparql.setReturnFormat(JSON)

query = """
    PREFIX dc:<http://purl.org/dc/elements/1.1/>
    PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>
    PREFIX nsogi:<http://prefix.cc/nsogi>
    PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX skos:<http://www.w3.org/2004/02/skos/core#>
    PREFIX dcterms:<http://purl.org/dc/terms/>
    SELECT ?risultato
    WHERE {
     ?item a skos:Concept .
     ?item skos:prefLabel ?risultato .
     filter regex(?risultato, """+type+""", "i")
    } ORDER BY  ?risultato
"""

results = sparql.query(query).convert()

我不知道sparql.setQuery(...)的用途是什么,但很明显它不是你想要的。

编辑:

看过源代码后,setQuery(...)实际上是供内部使用的(例如,编写子类的人),而不是普通的api用户。它拉出查询表单并记录查询文本。query(...)在内部调用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26885347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档