首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中编写从SPARQL查询返回的JSON数据的正确方法

在Python中编写从SPARQL查询返回的JSON数据的正确方法
EN

Stack Overflow用户
提问于 2018-07-23 22:04:16
回答 1查看 1.1K关注 0票数 1

我正在使用python3进行SPARQL查询。我需要读取Virtuoso数据库并输出三元组。三元组中的一些数据包含特殊字符,如换行符等。

不管怎样,我可以像这样得到数据:

代码语言:javascript
复制
queryString = "some query"
sparql.setQuery(queryString)
sparql.setReturnFormat(JSON)
try:
    jsonData = sparql.query()
    for result in jsonData:
        print('Result: ***')
        f.write(str(result) + '\n')
except:
    print("Oops:", sys.exc_info()[0], file=sys.stderr)

当我这样做时,我在文件中得到了以下输出:

代码语言:javascript
复制
b'{\n'
b'  "head" : {\n'
b'    "vars" : [\n'
b'      "subject",\n'
b'      "predicate",\n'
b'      "object"\n'
b'    ]\n'
b'  },\n'
b'  "results" : {\n'
b'    "bindings" : [\n'
b'      {\n'
b'        "predicate" : {\n'
b'          "type" : "uri",\n'
b'          "value" : "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"\n'
b'        },\n'
b'        "subject" : {\n'
b'          "type" : "uri",\n'
b'          "value" : "http://www.ontologyrepository.com/CommonCoreOntologies/delimits"\n'
b'        },\n'
b'        "object" : {\n'
b'          "type" : "uri",\n'
b'          "value" : "http://www.w3.org/2002/07/owl#InverseFunctionalProperty"\n'
b'        }\n'
b'      },\n'

诸若此类。我不确定b前缀在这些行上做什么。无论如何,我在使用JSON库时遇到了问题。因此,我更喜欢用JSON编写它。

我想用一个简单的东西来代替for循环,比如

代码语言:javascript
复制
json.dump(jsonData, f)

代码语言:javascript
复制
json.dumps(jsonData, f)

当我这样做的时候,我得到了错误消息Oops: <class 'TypeError'>。我注意到jsonData的类型是<class 'SPARQLWrapper.Wrapper.QueryResult'>

SPARQL查询不返回JSON吗?我还需要做一些其他的转换吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-24 04:21:05

字符串前面的b表示字符串不是字符串,而是字节字符串,并且字节被解释为用于打印的字符。Look here for more information

下一次,如果你多告诉我们一些你的问题,那就容易多了。你使用的是什么库,哪个版本,示例查询等。

在您的情况下,我假设您使用的是SPARQLWrapper库。你离解决你的问题已经很近了,你只需要转换你的QueryResult。只需调用jsonData = sparql.query().convert()而不是jsonData = sparql.query(),您将获得一个可以使用json.dump写入json文件的字典。

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

https://stackoverflow.com/questions/51480725

复制
相关文章

相似问题

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