3

Wikidata API を使用して、すべてのハリー ポッターのキャラクター名のリストを作成しようとしています。以下のリンクから Python ノートブックに itemlabels (キャラクター名) を取得したいと考えています。

これは、私が望むように実行されるウィキデータ クエリ サービスのクエリです。

import requests
import json
hpCharURL = "https://query.wikidata.org/sparql?query= SELECT DISTINCT 
?item ?itemLabel WHERE { {?item wdt:P31 ?sub1 . 
?sub1 (wdt:P279|wdt:P131)* wd:Q95074 . 
?item wdt:P1080 ?sub2 . 
?sub2 (wdt:P279|wdt:P131)* wd:Q5410773 } 
SERVICE wikibase:label { bd:serviceParam wikibase:language 'en' . }} 
&format = JSON"
r2 = requests.get(hpCharURL)
r2.json()

上記のコードの最後の行を実行した後、このエラーが発生し続けます。

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

クエリの最後に JSON を指定しても、結果は JSON ではなく XML で返されます。これを修正する方法についてのアイデアをいただければ幸いです。

4

2 に答える 2

2

はい、まだ xml を取得しています。

JSON 応答を要求するには、次のように要求にヘッダーを追加します。

headers = {"Accept" : "application/json"}
r2 = requests.get(hpCharURL, headers=headers)
r2.json()
于 2016-03-15T20:05:54.610 に答える