在页面上,数据清楚地以可读格式显示,但是当您尝试通过API提取数据时,会得到以下信息:https
:
//www.wikidata.org/w/api.php?action=wbgetentities&ids=Q24871
这是其中的一部分:
"P272": [
{
"id": "q24871$4721C959-0FCF-49D4-9265-E4FAC217CB6E",
"mainsnak": {
"snaktype": "value",
"property": "P272",
"datatype": "wikibase-item",
"datavalue": {
"value": {
"entity-type": "item",
"numeric-id": 775450
},
"type": "wikibase-entityid"
}
},
"type": "statement",
"rank": "normal"
},
{
"id": "q24871$31777445-1068-4C38-9B4B-96362577C442",
"mainsnak": {
"snaktype": "value",
"property": "P272",
"datatype": "wikibase-item",
"datavalue": {
"value": {
"entity-type": "item",
"numeric-id": 3041294
},
"type": "wikibase-entityid"
}
},
"type": "statement",
"rank": "normal"
},
{
"id": "q24871$08009F7A-8E54-48C3-92D9-75DEF4CF3E8D",
"mainsnak": {
"snaktype": "value",
"property": "P272",
"datatype": "wikibase-item",
"datavalue": {
"value": {
"entity-type": "item",
"numeric-id": 646968
},
"type": "wikibase-entityid"
}
},
"type": "statement",
"rank": "normal"
},
{
"id": "q24871$CA53B5EB-1041-4701-A36E-7C348FAC984E",
"mainsnak": {
"snaktype": "value",
"property": "P272",
"datatype": "wikibase-item",
"datavalue": {
"value": {
"entity-type": "item",
"numeric-id": 434841
},
"type": "wikibase-entityid"
}
},
"type": "statement",
"rank": "normal",
"references": [
{
"hash": "50f57a3dbac4708ce4ae4a827c0afac7fcdb4a5c",
"snaks": {
"P143": [
{
"snaktype": "value",
"property": "P143",
"datatype": "wikibase-item",
"datavalue": {
"value": {
"entity-type": "item",
"numeric-id": 11920
},
"type": "wikibase-entityid"
}
}
]
},
"snaks-order": [
"P143"
]
}
]
}
],
问题是我不确定如何将类似的部分转换为可读的文本。我知道API使用唯一的ID调用了类及其属性之间的链接,但我仍然陷入困境。
目前这实际上可行吗,还是我叫错了树?
您应该numeric-id
在每个语句中寻找s,并添加一个Q
线索来恢复您的wikidata id,这应该导致['Q775450', 'Q3041294', 'Q646968', 'Q434841', 'Q11920']
[ 更新 :您现在可以直接从访问Q id mainsnak.datavalue.value.id
,而不必从numeric-id
] 进行构建
可以使用wikibase-sdk(我开发的JS
lib)wbk.simplify.claims
功能来完成
取得这些ID后,您只需要使用wbgetentities
API 请求实体标签:
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q775450|Q3041294|Q646968|Q434841|Q11920&format=json&props=labels
您甚至可以使用languages
参数来获得某些语言的结果:https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q775450|Q3041294|Q646968|Q434841|Q11920&format=json&props=labels&languages=en|de|fr
问题内容: 我已经制作了一个使用JSON Google图像搜索API来提供图像的android应用,但是我注意到Google不再支持它。我还发现Wikidata有时会在某些项目上提供图像属性,但是我似乎无法使用Wikidata API获得图像的URL位置。 有什么方法可以从Wikidata中的项目获取图像URL属性吗? 问题答案: 如果某些Wikidata项(ID为 Qxxx )具有图片(P18)
问题内容: 我已经知道如何从Java剪贴板中获取纯文本,但是有时文本会以某种奇怪的方式进行编码,例如从Microsoft Word或从网站复制甚至从Eclipse复制源代码时。 如何从这些s中提取纯文本? 问题答案: 使用getData()方法和stringFlavor,您应该从剪贴板中获取纯文本。 如果剪贴板中有奇怪的文本,我认为,这应该是将数据放入剪贴板的程序问题。
谢谢你,Mahadev S
问题内容: 我如何得到一个数组的结果? 我有一个像这样的数组: 并将其保存在数据库中,例如JSON编码: 现在我想再次从数据库中获取数组。但是当我使用时: 我得到: 而不是数组。如何获取数组而不是对象? 问题答案: 将第二个参数设置为true以强制关联数组:
问题内容: 当我在BigQuery Web UI中运行查询时,结果显示在一个表中,在该表中,每个字段的名称和类型均已知(即使字段是COUNT(),AVG(),…操作,类型领域当然是已知的)。然后可以将结果直接导出为table / json / csv。 我的问题是,当我在Java项目中检索查询结果时,例如使用查询: …可以在不显式定义的情况下在PCollection中获取TableRow的架构吗?
我正在尝试从Java应用程序的Google Sheets API。我已经访问了教程中提到的文件,但我无法访问我自己创建的任何文件。 这是我使用的代码: 我在Drive中手动创建了一个电子表格,用字符串填充A1: B,并从URL中复制了id,看起来像“1IeoY5jY3Su86x1uvgc1yJqEU-6dd6FdUKo8Yf5J73k”(不是实际的ID)。 这将生成错误400无法解析范围:类数据!