我想解析來自芝麻SPARQL查詢的結果。 我找到示例代碼,下面的相關部分,我在下面顯示我的結果。從RDF查詢結果打印/解析JSON對象
(response, content) = httplib2.Http().request(endpoint, 'POST', urllib.urlencode(params), headers=headers)
print "Response %s" % response.status
results = json.loads(content)
print "\n".join([result['type']['value'] for result in results['results']['bindings']])
{
"head": {
"vars": [ "costar", "movie" ]
},
"results": {
"bindings": [
{
"costar": { "type": "uri", "value": "http:\/\/rdf.freebase.com\/ns\/en.connie_nielsen" },
"movie": { "type": "uri", "value": "http:\/\/rdf.freebase.com\/ns\/en.basic_2003" }
},
{
"costar": { "type": "uri", "value": "http:\/\/rdf.freebase.com\/ns\/en.timothy_daly" },
"movie": { "type": "uri", "value": "http:\/\/rdf.freebase.com\/ns\/en.basic_2003" }
},
]
}
}
但我得到這個錯誤:
Traceback (most recent call last):
File "C:\Software\rdflib\movieSparqlQuery.py", line 45, in <module>
print "\n".join([result['type']['value'] for result in results['results']['b
indings']])
KeyError: 'type'
Press any key to continue . . .
我怎樣才能改變 「打印」 聲明?
我希望看到的是類似的配角和電影的名字在同一行:
http://rdf.freebase.com/ns/en.connie_nielsen http://rdf.freebase.com/ns/en.basic_2003
後來,我會脫掉的命名空間。
謝謝!
謝謝,完美。我仍然必須完成Python中的JSON;更習慣於XML和其他語言。 – NealWalters 2011-05-10 01:20:10